我有一个包含多个模块的GAE应用程序,每个模块都在自己的文件夹中,如下所示:
/app_root
app.yaml
/module_1
module_1.yaml
/module_2
module_2.yaml
/module_3
module_3.yaml
现在每个模块都有自己的models.py
文件,但有些模块访问相同的数据存储类型,如果我更改了类型,我必须手动更新每个模块中的models.py
个文件(如必要)。有没有办法做这样的事情:
/app_root
app.yaml
/models
models.py
__init__.py
/module_1
module_1.yaml
get_index_size.py
__init__.py
/module_2
module_2.yaml
__init__.py
/module_3
module_3.yaml
__init__.py
做相对进口?在我的一个模块中,我尝试了这段代码:
sys.path.append(os.path.dirname(os.getcwd()))
要添加父目录,但在尝试时我得到ImportError
:
from models import models
完整追溯:
Traceback (most recent call last):
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 239, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 298, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 84, in LoadObject
obj = __import__(path[0])
File "/base/data/home/apps/[app_id]/search:main.377708108929972632/get_index_size.py", line 13, in <module>
from models import models
App Engine上的文件夹结构似乎是不同的,然后是本地的,所以虽然我可以在我的dev_appserver
上追加路径并导入,但我无法在生产中执行此操作。有任何想法吗?谢谢。
答案 0 :(得分:1)
尝试将__init__.py
文件添加到模型文件夹中。这就是Python知道它是命名空间。