我的项目结构如下所示,
.
├── app
│ ├── api
│ ├── models
│ ├── services
│ │ └── lib
| | |__ worker.yaml
| | |__ worker.py
| |_ main.py
|_ app.yaml
我尝试从models
模块(即默认模块)导入app
,如{,1}},
worker.py
但它显示from app.models import db
。但我可以在No module named app.models
内实现相同的效果。请注意,我同时运行main.py
和app.yaml
个文件。
答案 0 :(得分:1)
部署后,GAE服务/模块不会在其模块目录之外共享任何,这是其.yaml
文件所在的目录。
所以worker.py
看不到services
目录(worker.yaml
存在的地方)以上的任何内容,因此无法看到models
。但main.py
可以,因为模型位于其app
目录(app.yaml
存在的位置)内。
如果需要,您可以在models
内添加符号链接services
,请参阅Sharing entities between App Engine modules
或者可以查看Can a default service/module in a Google App Engine app be a sibling of a non-default one in terms of folder structure?以获取我如何构建多模块应用的示例?