Comunicación entre los servicios del motor de Google Apps.

La estructura de mi proyecto se ve a continuación.

. ├── app │  ├── api │  ├── models │  ├── services │  │  └── lib | | |__ worker.yaml | | |__ worker.py | |_ main.py |_ app.yaml 

Estoy tratando de importar models desde el módulo de la app (es decir, el módulo predeterminado) en worker.py como,

 from app.models import db 

Pero no muestra No module named app.models . Pero puedo lograr lo mismo dentro de main.py Tenga en cuenta que estoy ejecutando los archivos app.yaml y worker.yaml .

Cuando se implementa, GAE Services / modules no comparte nada fuera de su directorio de módulos, que es el directorio en el que existe su archivo .yaml .

Entonces, worker.py no verá nada sobre el directorio de services (donde existe worker.yaml ), por lo que no puede ver models . Pero main.py puede, ya que los modelos están dentro de su app dir (donde existe app.yaml ).

Si lo desea, puede establecer models enlaces simbólicos dentro de los services . Consulte Compartir entidades entre los módulos de App Engine.

O tal vez echar un vistazo a ¿Puede un servicio / módulo predeterminado en una aplicación de Google App Engine ser un hermano de uno no predeterminado en términos de estructura de carpetas? para un ejemplo de cómo estructuraría una aplicación multi-módulo?