谷歌应用引擎服务之间的通信

Avi*_*Raj 1 python google-app-engine

我的项目结构如下所示,

.
??? app
?   ??? api
?   ??? models
?   ??? services
?   ?   ??? lib
|   |   |__ worker.yaml
|   |   |__ worker.py
|   |_ main.py
|_ app.yaml
Run Code Online (Sandbox Code Playgroud)

我正在尝试modelsapp模块(即默认模块)中导入worker.py

from app.models import db
Run Code Online (Sandbox Code Playgroud)

但它显示No module named app.models。但是我可以在内部实现相同的目标main.py。请注意,我同时运行app.yamlworker.yaml文件。

Dan*_*scu 5

部署时,GAE 服务/模块不会共享其模块目录之外的任何内容,该目录是其.yaml文件所在的目录。

所以worker.py不会看到services目录上方的任何东西(worker.yaml存在的地方),因此它看不到models. 但是main.py可以,因为模型在其app目录内(app.yaml存在的地方)。

如果需要,您可以models在内部进行符号链接services,请参阅在 App Engine 模块之间共享实体

或者,可以看看Google App Engine 应用程序中的默认服务/模块能否在文件夹结构方面与非默认服务/模块同级?举例说明我如何构建多模块应用程序?