Zappa 不打包嵌套的源目录
Zappa not packaging nested source directories
我有一个 python 应用程序,我正尝试使用 zappa 进行部署。我目录的根目录有应用程序和一个名为 helper 的目录。结构如下所示:
|-app.py
|-zappa_settings.json
|-helper
|-api.py
|-__init.py__
在帮助程序目录中有一个 api.py 文件,在我的 app.py 中引用,就像这样
from helper import api
当我运行使用zappa deploy dev
打包和部署的命令时,它不会在部署中捆绑helper目录,只有根级应用程序目录。打包部署时如何告诉zappa包含所有子目录?
在我自己苦苦思索之后,我意识到这个想法是将你的其他代码打包,安装在你的虚拟环境中,让 app.py 只是一个调用你其他功能的驱动程序。
这是一个使用 Flask 的具体最小示例。首先,让我们用另一个文件扩展您的示例,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
使用 Flask 然后去 http://127.0.0.1:5000/
,你会看到你得到 This is the index content
。如果您 deploy
使用 Zappa,您会看到您的 API 端点做同样的事情。
我有一个 python 应用程序,我正尝试使用 zappa 进行部署。我目录的根目录有应用程序和一个名为 helper 的目录。结构如下所示:
|-app.py
|-zappa_settings.json
|-helper
|-api.py
|-__init.py__
在帮助程序目录中有一个 api.py 文件,在我的 app.py 中引用,就像这样
from helper import api
当我运行使用zappa deploy dev
打包和部署的命令时,它不会在部署中捆绑helper目录,只有根级应用程序目录。打包部署时如何告诉zappa包含所有子目录?
在我自己苦苦思索之后,我意识到这个想法是将你的其他代码打包,安装在你的虚拟环境中,让 app.py 只是一个调用你其他功能的驱动程序。
这是一个使用 Flask 的具体最小示例。首先,让我们用另一个文件扩展您的示例,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
使用 Flask 然后去 http://127.0.0.1:5000/
,你会看到你得到 This is the index content
。如果您 deploy
使用 Zappa,您会看到您的 API 端点做同样的事情。