Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AWS Elastic Beanstalk无法使用requirements.txt Git Pip安装Python包_Python_Git_Pip_Amazon Elastic Beanstalk - Fatal编程技术网

AWS Elastic Beanstalk无法使用requirements.txt Git Pip安装Python包

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: []

我尝试使用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: []
    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

我也面临同样的问题。