【问题标题】:Deploying impure Python packages to AWS将不纯的 Python 包部署到 AWS
【发布时间】:2015-11-28 05:26:13
【问题描述】:
我有兴趣使用 Python 包 (graphviz) 在 AWS 上托管的 Flask 服务器上进行一些后端计算。这个包似乎有不少非 Python 依赖,而且确实不能完全通过 pip 安装。 (我使用 Homebrew 在本地安装它。)
如何将这样的包部署到我的 Elastic Beanstalk 环境中?
对于我正在使用的所有其他 Python 包,我只是在我的 requirements.txt 文档中保留了一个列表,并且 Elastic Beanstalk 使用 pip 自动安装它们,但这不适用于包(据我了解,主要是编译的 C 代码)。
【问题讨论】:
标签:
python
amazon-web-services
amazon-elastic-beanstalk
web-deployment
【解决方案1】:
您可以包括,例如:
packages:
yum:
graphviz: [] # [] can optionally be replaced with version number
other_dependencies: [] # otherwise [] will install the latest version
在应用程序的.ebextensions/ 目录中的.config 文件中。当使用eb deploy 部署应用程序时,这些包将由yum 实用程序安装到您的实例中。
完整的文件看起来像(假设您使用 AWS 的教程之一创建它)
option_settings:
things
container_commands:
things
packages:
yum:
graphviz: []
Documentation
【解决方案2】:
如果您愿意迁移到 CodeDeploy,您可以安装 Homebrew 并将软件包安装为部署的一部分。