我在Google App Engine上导入时遇到困难。我有以下的(标准)建立一个Django/Python项目:在Google App Engine上苦于进口
[myproject]
|
-[myproject]
|
--[app1]
|
--[app2]
第二[myproject]
目录(我认为)认为项目的根和被命名为相同项目的顶级目录。这个结构是由Django的startproject
命令创建的。
说,我有一个类MyClass
在app1.models
,我想用在app2.models
。当我开发本地使用GAE SDK,我可以这样做:
from app1.models import MyClass
然而,当我部署到谷歌应用程序引擎,我需要换一种说法进口:
from myproject.app.models import MyClass
否则GAE不会找到该类并中止一个错误。此外,在我的settings.py
我可以在本地参考INSTALLED_APPS
为:
'app1',
'app2',
...
对于GAE我需要做的:
'myproject.app1',
'myproject.app2',
...
地方发展,这两种方法的工作。部署到GAE时,只有使用完整路径名的方法才有效。为什么是这样??
-
编辑:
我试图通过lucernia提供的答案,但碰到了各种各样的问题。主要的绊脚石是部署到GAE,当app.yaml
不在要尝试部署的结构的根目录中时,它将不会运行。
我试过里皮斯提到的答案,工作得很好。我不得不添加下面几行:
import sys
sys.path.insert(1, 'myproject')
我main.py
和settings.py
两者。只是将它添加到main.py
是不够的。 GAE仍然无法找到我的应用程序。
我想我读谷歌的GAE文档得很好,但我必须要么错过了这个,否则在某处埋藏......如果一个人想在GAE上运行Django的非常重要的......
请参阅此答案,并且很可能您会找出要执行的操作:http://stackoverflow.com/a/14851686/8418 – Lipis 2013-03-05 23:29:53