【问题标题】:Having trouble importing middleware classes in App Engine / Django在 App Engine / Django 中导入中间件类时遇到问题
【发布时间】:2009-12-16 20:48:56
【问题描述】:

试图让 facebook 连接在应用引擎上工作,所以我按照以下说明操作:

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 之前它正在运行),我收到以下错误:

配置不当:导入错误 中间件 facebook.djangofb:“不 名为 facebook.djangofb 的模块"

但是,当我进入终端时,我可以运行 python,并且当我输入“import facebook.djangofb”时,我没有收到任何错误。

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

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

谢谢!

【问题讨论】:

  • 您是使用django内部服务器在本地运行应用程序还是使用Apache等...?
  • 我正在使用谷歌应用引擎启动器运行它

标签: django google-app-engine facebook pyfacebook


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    所有模块都必须位于应用的文件夹层次结构下。请务必在您的应用请求处理程序中添加到 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 文件夹下。这种“路径调整”应该在应用程序中的每个“请求入口点脚本”中完成。

    【讨论】:

    • 您是说我应该将 facebook 目录从 /Library/Python/2.6/site-packages 移动到 settings.py 所在的同一目录吗?我也试过了,重新启动了我的应用程序,但仍然遇到同样的错误。如果我误解了您的建议,我们深表歉意。
    • 您的应用引擎app 存在于文件夹f 下:所有必需的模块都必须位于f 下。
    • 也许我还是误会了你。这是我所做的:我有一个名为 MyApp 的文件夹,其中包含 app.yaml、index.yaml、main.py、settings.py 以及其他一些目录。我已将 facebook 目录移动到 MyApp 中,但这仍然不起作用。我也尝试将它提升一个级别(因此它与 MyApp 位于同一目录中),但这也不起作用。
    • 你听我关于sys.path的建议了吗?
    • 是的,我在 main.py 和 settings.py 中都尝试了 sys.path.append('/Users/ryan/Documents/MyApp') ,但也没有用。
    猜你喜欢
    • 2016-11-09
    • 1970-01-01
    • 2021-04-23
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    相关资源
    最近更新 更多