我有一个python应用程序,我正在尝试用zappa进行部署。我目录的根级有一个应用程序和一个名为helper的目录。结构如下:
|-app.py
|-zappa_settings.json
|-helper
|-api.py
|-__init.py__在助手目录中有一个api.py文件,它在api.py app.py中引用,如下所示
from helper import api当我使用zappa deploy dev运行要打包和部署的命令时,它将不会将助手目录捆绑在部署中,只有根级应用程序目录。如何告诉zappa在打包和部署时包含所有子目录?
发布于 2018-03-08 22:46:32
在与此斗争之后,我意识到这个想法是打包您的其他代码,将其安装在您的虚拟环境中,并让app.py成为调用您的其他函数的驱动程序。
下面是一个使用水瓶的具体的最低限度的例子。首先,让我们用另一个文件setup.py扩展您的示例
|-app.py
|-zappa_settings.json
|-setup.py
|-helper
|-api.py
|-__init.py____init__.py是空的。其余文件如下:
# setup.py
from setuptools import setup
setup(
name='helper',
packages=['helper'],
include_package_data=True,
install_requires=['flask']
)
# app.py
from helper import api
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return api.index()
# helper/api.py
def index():
return "This is the index content"
# zappa_settings.json
{
"dev": {
"app_function": "app.app",
"s3_bucket": "my_bucket"
}
}现在,您可以在虚拟环境中使用pip install -e .。如果您现在使用app.py和go http://127.0.0.1:5000/运行This is the index content,您将看到您得到了This is the index content。如果您使用Zappa进行deploy,您将看到您的API端点做了同样的事情。
https://stackoverflow.com/questions/45906285
复制相似问题