AWS Elastic Beanstalk无法使用requirements.txt Git Pip安装Python包
我尝试使用eb deploy在AWS Elastic Beanstalk上部署Flask应用程序,但失败 我在app目录下有requirements.txt:AWS Elastic Beanstalk无法使用requirements.txt Git Pip安装Python包,python,git,pip,amazon-elastic-beanstalk,Python,Git,Pip,Amazon Elastic Beanstalk,我尝试使用eb deploy在AWS Elastic Beanstalk上部署Flask应用程序,但失败 我在app目录下有requirements.txt: Flask==0.12.2 numpy==1.13.3 pandas==0.21.1 requests==2.18.4 scipy==1.0.0 Werkzeug==0.12.2 -e git+http://github.com/hensing/PyDDE#egg=PyDDE packages: yum: git: []
Flask==0.12.2
numpy==1.13.3
pandas==0.21.1
requests==2.18.4
scipy==1.0.0
Werkzeug==0.12.2
-e git+http://github.com/hensing/PyDDE#egg=PyDDE
packages:
yum:
git: []
gcc-c++: []
make: []
和.ebextensions目录下的python.config文件:
Flask==0.12.2
numpy==1.13.3
pandas==0.21.1
requests==2.18.4
scipy==1.0.0
Werkzeug==0.12.2
-e git+http://github.com/hensing/PyDDE#egg=PyDDE
packages:
yum:
git: []
gcc-c++: []
make: []
错误消息是:
信息:环境更新正在启动
信息:将新版本部署到实例
错误:您的requirements.txt无效。快照日志以了解详细信息
错误:[实例:i-03e92fa3c58b6e010]命令在实例上失败。返回代码:1输出:已截断。。。
文件/usr/lib64/python2.7/subprocess.py,第541行,在check_调用中
引发被调用的进程错误代码,cmd
调用的进程错误:命令'/opt/python/run/venv/bin/pip install-r/opt/python/ondeck/app/requirements
.txt'返回非零退出状态2
Hook/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py失败。有关更多详细信息,请查看/var/log/eb ac
使用控制台或EB CLI记录tivity.log
信息:所有实例上的命令执行已完成。摘要:[成功:0,失败:1]
错误:在实例ID“i-03e92fa3c58b6e010”上执行命令失败。正在中止操作
错误:未能部署应用程序
和/var/log/eb-activity.log显示:
2018-01-19 04:26:53878安装依赖项时出错:命令'/opt/python/run/venv/bin/pip
install-r/opt/python/ondeck/app/requirements.txt'返回非零退出状态2
回溯最近一次呼叫上次:
文件/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py,第22行,在main中
安装依赖项
文件/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py,第18行,位于安装依赖项中
检查\u调用“%s安装-r%s”%os.path.joinAPP\u VIRTUAL\u ENV,'bin','pip',requirements\u文件,
shell=True
文件/usr/lib64/python2.7/subprocess.py,第541行,在check_调用中
引发被调用的进程错误代码,cmd
调用的进程错误:命令'/opt/python/run/venv/bin/pip install-r/opt/python/ondeck/app/requiremen
ts.txt'返回非零退出状态2执行器::非零退出状态
这个问题似乎是因为AWS Elastic Beanstalk不支持-e git+安装?您可以尝试另一种向需求中添加PyDDE的方法
Flask==0.12.2
git+https://github.com/hensing/PyDDE.git
问题已经解决了 这不是因为安装了PyDDE 实际原因是Scipy的安装需要大于40MB的内存,而默认的EC2实例t1.micro没有足够的内存来安装它。它可以通过使用更大的EC2实例来解决。我最终选择了t2,中等 此外,要安装熊猫,还需要gcc。我修改了.ebextensions\[env_name].config文件,其中包含以下内容:我正在使用python 2.7,来自: 这帮助了我: 我可以通过向pyproject.toml添加enum34===1.1.8来解决这个问题。 显然,enum34在v1.1.8中有一个特性可以避免这个错误,但是 这在v1.1.9+中进行了回归。不过,这只是一个解决办法。这个 更好的解决方案是让包使用环境标记,以便 除非需要,否则根本不必安装enum34 资料来源: 我在.ebextensions文件夹中创建了一个名为02_upgrade_pip.config的文件,用于在每次启动新实例时升级pip并安装特定版本的enum34 02\u升级\u pip.config
commands:
01_remove_enum_34:
command: pip uninstall -y enum34
ignoreErrors: true
02_install_enum_34:
command: pip install enum34==1.1.8
ignoreErrors: false
03_pip_upgrade:
command: /opt/python/run/venv/bin/pip install --upgrade pip
ignoreErrors: false
我也面临同样的问题。