分享快乐的方式型号.py不同模块之间的文件?

2024-04-26 18:48:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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

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


Tags: 模块pathpyappyamlwsgihomedata
1条回答
网友
1楼 · 发布于 2024-04-26 18:48:37

尝试将__init__.py文件添加到模型文件夹。这样Python就知道它是一个名称空间。你知道吗

相关问题 更多 >