无法在App Engine / Django中导入中间件类

时间:2009-12-16 20:48:56

标签: django google-app-engine facebook pyfacebook

尝试让facebook连接到app引擎上工作,所以我按照这些说明操作:

http://www.slideshare.net/mrtrosen/lab305-django-facebook-connect-integration-example

其中一个步骤要求我添加到我的middleware_classes,因此我将以下内容添加到settings.py(从上面演示文稿中的幻灯片18复制):

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'facebook.djangofb.FacebookMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'facebookconnect.middleware.FacebookConnectMiddleware',
    )

但是,当我在本地查看我的应用程序时(在将其添加到settings.py之前工作),我收到以下错误:

  

NotperlyConfigured:导入错误   中间件facebook.djangofb:“不   名为facebook.djangofb的模块“

然而,当我去终端时,我能够运行python,当我输入“import facebook.djangofb”时,我没有收到任何错误。

仅供参考,facebook包位于/Library/Python/2.6/site-packages。

关于为什么会发生这种情况的任何想法?我已经坚持了一段时间,所以任何帮助都将非常感激。

谢谢!

2 个答案:

答案 0 :(得分:1)

Google App Engine使用python 2.5运行时我相信,因此您可以按照上面的建议将facebook目录移动到项目中,或者如果您还安装了python 2.5,则将其移至2.5站点包。

答案 1 :(得分:0)

所有模块必须位于应用程序的文件夹层次结构下。请务必在应用请求处理程序中添加sys.path所需的路径。

sys.path应更新为以下内容:

root = os.path.split(__file__)[0]
sys.path.insert(0, os.path.join(root, 'folder1'))
sys.path.insert(0, os.path.join(root, 'folder2'))

其中folderX包含在app文件夹下。应在应用程序的每个“请求入口点脚本”中完成此“路径调整”。