将不纯的 Python 包部署到 AWS

Deploying impure Python packages to AWS

我有兴趣使用 Python 程序包 (graphviz) 在托管在 AWS 上的 Flask 服务器上进行一些后端计算。这个包好像有不少非Python的依赖,确实不能完全用pip安装。 (我使用 Homebrew 在本地安装它。)

如何将这样的包部署到我的 Elastic Beanstalk 环境?

对于我正在使用的所有其他 Python 软件包,我只是在我的 requirements.txt 文档中保留了一个列表,Elastic Beanstalk 使用 pip 自动安装它们,但这行不通与包的非 Python 部分(据我了解,主要是编译的 C 代码)。

如果您愿意迁移到 CodeDeploy,您可以安装 Homebrew 并在部署过程中安装包。

您可以包括,例如:

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