gpt4 book ai didi

python - Zappa 不打包嵌套的源目录

转载 作者:太空狗 更新时间:2023-10-30 01:11:57 26 4
gpt4 key购买 nike

我有一个 python 应用程序,我正尝试使用 zappa 进行部署。我目录的根目录有应用程序和一个名为 helper 的目录。结构如下所示:

|-app.py
|-zappa_settings.json
|-helper
|-api.py
|-__init.py__

在 helper 目录中有一个 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 .。如果你现在使用 Flask 运行 app.py 并访问 http://127.0.0.1:5000/,你会看到你得到 This is the index内容。如果您使用 Zappa 部署,您将看到您的 API 端点做同样的事情。

关于python - Zappa 不打包嵌套的源目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45906285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com