在App Engine/Django中导入中间件类时遇到问题
尝试让facebook connect在app engine上运行,因此我遵循以下说明: 其中一个步骤要求我添加到我的中间件类中,因此我将以下内容添加到settings.py(复制自上面演示的幻灯片18): 但是,当我在本地查看我的应用程序时(在将其添加到settings.py之前,该应用程序正在运行),我会遇到以下错误: 配置不正确:导入时出错 中间件facebook.djangfb:“没有 名为facebook.djangofb的模块” 然而,当我进入终端时,我能够运行python,并且当我键入“import facebook.djangofb”时,我没有得到任何错误 仅供参考,facebook软件包位于/Library/Python/2.6/site-packages中 你知道为什么会这样吗?我已经在这上面呆了一段时间,所以任何帮助都将不胜感激在App Engine/Django中导入中间件类时遇到问题,django,google-app-engine,facebook,pyfacebook,Django,Google App Engine,Facebook,Pyfacebook,尝试让facebook connect在app engine上运行,因此我遵循以下说明: 其中一个步骤要求我添加到我的中间件类中,因此我将以下内容添加到settings.py(复制自上面演示的幻灯片18): 但是,当我在本地查看我的应用程序时(在将其添加到settings.py之前,该应用程序正在运行),我会遇到以下错误: 配置不正确:导入时出错 中间件facebook.djangfb:“没有 名为facebook.djangofb的模块” 然而,当我进入终端时,我能够运行python,并且当
谢谢 所有模块都必须位于应用程序的文件夹层次结构下。确保还将所需路径添加到应用程序请求处理程序中的
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
文件夹下。这种“路径调整”应该在应用程序中的每个“请求入口点脚本”中完成。我相信Google App Engine使用python 2.5运行时,因此,您可以按照上面的建议将facebook目录移动到项目中,或者如果同时安装了python 2.5,则将其移动到2.5站点包中。您是使用django internal server在本地运行应用程序还是使用Apache,等等…?我正在使用google应用程序引擎启动器运行它。你是说我应该将facebook目录从/Library/Python/2.6/site-packages移动到settings.py所在的同一目录吗?我也试过了,重新启动了我的应用程序,但仍然出现同样的错误。如果我误解了你的建议,我深表歉意。你的appengineapp
位于文件夹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'),但这也不起作用。
root = os.path.split(__file__)[0]
sys.path.insert(0, os.path.join(root, 'folder1'))
sys.path.insert(0, os.path.join(root, 'folder2'))