在谷歌应用引擎服务之间进行通信

时间:2017-02-23 19:27:34

标签: python google-app-engine

我的项目结构如下所示,

.
├── 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.pyapp.yaml个文件。

1 个答案:

答案 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?以获取我如何构建多模块应用的示例?