如何在App Engine上进行相对导入?(Python)
我正在尝试在App Engine上使用Python进行相对导入。这里是我的基本情况:
app/
models.py
app.yaml
/mymodule/
test.py
mymodule.yaml
我想导入models.py。基本上,我在不同的模块中使用了相同的数据存储模型,所以我希望能够从test.py(或任何其他模块)中导入models.py。
在App Engine中,相对导入是怎么工作的呢?谢谢。
编辑:我的app.yaml文件:
application: [my app name]
version: main
runtime: python27
api_version: 1
threadsafe: true
inbound_services:
- mail
builtins:
- appstats: on
handlers:
[my handlers]
libraries:
- name: webapp2
version: "2.5.1"
- name: jinja2
version: latest
- name: markupsafe
version: latest
- name: ssl
version: latest
2 个回答
2
在app
文件夹下创建一个空文件,名字叫__init__.py
,这样就可以把这个文件夹变成一个包了。之后你就可以像下面这样导入它:
from app import models
你可能还想在mymodule
文件夹里也添加一个同样的文件。
3
我觉得解决办法是把 mymodule.yaml
文件放在 app 这个文件夹里。看起来你的代码根目录在 PYTHONPATH
里,就是你模块的 yaml
文件所在的文件夹。