Python 在不同模块之间共享models.py文件的方法?

Python 在不同模块之间共享models.py文件的方法?,python,google-app-engine,Python,Google App Engine,我有一个带有多个模块的GAE应用程序,每个模块都位于各自的文件夹中,如下所示: /app_root app.yaml /module_1 module_1.yaml /module_2 module_2.yaml /module_3 module_3.yaml 现在每个模块都有自己的models.py文件,但有些模块访问相同的数据存储类型,如果我更改了类型,我必须手动更新每个模块中的models.py文件(如有必要

我有一个带有多个模块的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
回溯(最近一次呼叫最后一次):
文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第239行,在Handle中
handler=\u config\u handle.add\u wsgi\u中间件(self.\u LoadHandler())
LoadHandler中的文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第298行
处理程序,路径,err=LoadObject(self.\u处理程序)
LoadObject中的文件“/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py”,第84行
obj=\uuuuuuuuuuuuuu导入(路径[0])
文件“/base/data/home/apps/[app_id]/search:main.37770810899972632/get_index_size.py”,第13行,在
从模型导入模型

似乎appengine上的文件夹结构与本地文件夹结构不同,因此虽然我可以在我的
dev_appserver
上附加路径并导入,但在生产环境中我无法这样做。有什么想法吗?谢谢

尝试将
\uuuu init\uuuu.py
文件添加到模型文件夹中。这样,Python就知道它是一个名称空间。

只是尝试了一下,但它不起作用-
\uuuu init\uuuuuuuuy.py
文件中应该有什么吗?谢谢。你从哪里打电话来<代码>\uuuu init\uuuuu.py可以为空。用这些信息更新了我的问题——基本上我是从模块中的脚本导入的,在本例中,
module\u 1
。谢谢。在
模块1
中添加一个
\uuuu init\uuuu.py
,以便Python知道它是一个包。然后您应该能够来回导入。