首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zappa不打包嵌套源目录

Zappa不打包嵌套源目录
EN

Stack Overflow用户
提问于 2017-08-27 14:56:53
回答 1查看 978关注 0票数 6

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

代码语言:javascript
复制
|-app.py
|-zappa_settings.json
|-helper
   |-api.py
   |-__init.py__

在助手目录中有一个api.py文件,它在api.py app.py中引用,如下所示

代码语言:javascript
复制
from helper import api

当我使用zappa deploy dev运行要打包和部署的命令时,它将不会将助手目录捆绑在部署中,只有根级应用程序目录。如何告诉zappa在打包和部署时包含所有子目录?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-08 22:46:32

在与此斗争之后,我意识到这个想法是打包您的其他代码,将其安装在您的虚拟环境中,并让app.py成为调用您的其他函数的驱动程序。

下面是一个使用水瓶的具体的最低限度的例子。首先,让我们用另一个文件setup.py扩展您的示例

代码语言:javascript
复制
|-app.py
|-zappa_settings.json
|-setup.py
|-helper
   |-api.py
   |-__init.py__

__init__.py是空的。其余文件如下:

代码语言:javascript
复制
# 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端点做了同样的事情。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45906285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档