上下文
我有一个本地文件夹,其中包含多个Python Flask应用程序和一个commons python包。如您所见,我为每个Flask应用程序创建了一个virtualenv,因为我想使用Zappa部署到AWS Lambda,并且只想在转到AWS的软件包zip中包含相关的依赖项。
project_folder/
+-- commons/
| +-- __init__.py
| +-- setup.py
| +-- module1.py
+-- application1/
| +-- __init__.py
| +-- app.py
| +-- env/
+-- application2/
| +-- __init__.py
| +-- app.py
| +-- env/
问题
我无法在Flask应用程序中包含commons
软件包。我认为这是必须做的,因为它是附属的而不是子目录。
问题
当我从commons
内部调用zappa deploy
时,如何确保包含project_folder/application1/
软件包?
答案 0 :(得分:1)
解决方案之一是将软件包安装在您的虚拟环境中( commons 目录中的pip install .
)。 Zappa将使用其中安装的所有软件包。
当然,这有点麻烦,因为您每次修改软件包时都需要重新安装该软件包。您可以:
zappa deploy
来为您提供帮助。callbacks
部分中注册。部署/更新过程将调用此模块,并且理论上可以预先重新安装该软件包。但是,这只是我的猜测选项,它是可能的。我从来没有尝试过这样的事情。