我有兴趣使用Python包(graphviz)在AWS上托管的Flask服务器上进行一些后端计算。这个包似乎有相当多的非Python依赖项,实际上它不能完全由pip安装。(我使用Homebrew在本地安装了它。)
如何将这样的包部署到我的Elastic Beanstalk环境中?
对于我正在使用的所有其他Python包,我只是在requirements.txt文档中保留了一个列表,Elastic Beanstalk使用pip自动安装它们,但这不适用于包的非Python部分(据我所知,大部分是编译的C代码)。
您可以包括,例如:
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: []
文档
如果您愿意迁移到CodeDeploy,您可以安装Homebrew并将包作为部署的一部分进行安装。