AWS Elastic Beanstalk - 错误 requirements.txt
Posted
技术标签:
【中文标题】AWS Elastic Beanstalk - 错误 requirements.txt【英文标题】:AWS Elastic Beanstalk - error requirements.txt 【发布时间】:2017-01-22 10:56:03 【问题描述】:当我尝试部署我的 Amazon Web Services Elastic Beanstalk 项目(Python + Django)时,我收到以下错误:
2016-09-14 14:46:37,244 ERROR Error installing dependencies: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1
Traceback (most recent call last):
File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 22, in main
install_dependencies()
File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 18, in install_dependencies
check_call('%s install -r %s' % (os.path.join(APP_VIRTUAL_ENV, 'bin', 'pip'), requirements_file), shell=True)
File "/usr/lib64/python2.7/subprocess.py", line 540, in check_call
raise CalledProcessError(retcode, cmd)
CalledProcessError: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 1 (Executor::NonZeroExitStatus)
几个月前我遇到了这个错误,我只是在 .ebextensions 中更改了我的配置,这使得部署能够正常工作(问题是缺少 postgresql93-devel):
packages:
yum:
git: []
postgresql93-devel: []
libffi-devel: []
我猜 AWS 在 requirements.txt 中我的一个或多个库存在问题 - 我尝试安装/卸载其中的一些以找到导致问题的库,但尚未解决。这是我的 requirements.txt:
awsebcli==3.7.7
beautifulsoup4==4.4.1
boto==2.40.0
botocore==1.4.40
cement==2.8.2
cffi==1.5.2
colorama==0.3.7
cryptography==1.3.1
Django==1.9.4
django-storages==1.4.1
docker-py==1.7.2
dockerpty==0.4.1
docopt==0.6.2
docutils==0.12
enum34==1.1.2
future==0.15.2
futures==3.0.5
gax-google-logging-v2==0.8.1
gax-google-pubsub-v1==0.8.1
google-api-python-client==1.5.0
google-gax==0.13.0
googleads==3.13.0
googleapis-common-protos==1.3.4
grpc-google-logging-v2==0.8.1
grpc-google-pubsub-v1==0.8.1
grpcio==1.0.0
httplib2==0.9.2
idna==2.1
ipaddress==1.0.16
jmespath==0.9.0
oauth2client==2.0.1
pathspec==0.3.4
ply==3.8
protobuf==3.0.0
psycopg2==2.6.1
pyasn1==0.1.9
pyasn1-modules==0.0.8
pycparser==2.14
pyOpenSSL==16.0.0
PySocks==1.5.6
python-dateutil==2.5.3
pytz==2016.2
PyYAML==3.11
requests==2.9.1
rsa==3.4
s3transfer==0.1.4
semantic-version==2.5.0
simplejson==3.8.2
six==1.10.0
suds-jurko==0.6
texttable==0.8.4
uritemplate==0.6
websocket-client==0.37.0
xmltodict==0.10.1
我的猜测是问题来自这些库之一(但我可能错了!):
future==0.15.2
futures==3.0.5
gax-google-logging-v2==0.8.1
gax-google-pubsub-v1==0.8.1
google-gax==0.13.0
googleapis-common-protos==1.3.4
grpc-google-logging-v2==0.8.1
grpc-google-pubsub-v1==0.8.1
grpcio==1.0.0
ply==3.8
protobuf==3.0.0
s3transfer==0.1.4
Django 项目在本地完美运行。我的问题仅与 AWS Elastic Beanstalk 部署有关。
如果您有任何想法,请告诉我。
【问题讨论】:
简单问题:您的应用文件夹中有“requirements.txt”文件吗? (它必须以这种方式命名并且位于项目根目录中) 是的,它在根目录。请看一下我的结构:s14.postimg.org/fqw09unsh/elastic_beanstalk.jpg 对不起,我是一个白痴我没有仔细阅读帖子...通过阅读错误,找到了requirements.txt但是安装过程中有错误...不幸的是堆栈跟踪中没有有用的信息......我的猜测是:1.缺少对操作系统级别的依赖(系统库)2.缺少/错误的环境变量 我回到了以前的 GIT 版本,一步一步地添加了我的新功能。我不确定是什么问题,但它似乎来自以下库之一:future==0.15.2、grpcio==1.0.0、ply==3.8、protobuf==3.0.0——我删除了它们一切正常。不知道为什么要安装它们。 对于将来遇到相同问题的任何人:尝试从 beanstalk 控制台请求最后 100 条日志。在那里,它具体解释了哪些要求未能安装。 【参考方案1】:我在这里看到了同样的问题,这是未来的图书馆。如果您查看 AWS EB 服务器错误日志 (/var/log/httpd/error_log),您可以看到错误。
python3 / django2 和future模块玩的不太好,但是awsebcli坚持。
我在这里通过不将 awsebcli 安装到虚拟环境来解决它。然后,您需要使用本地环境(安装了 awsebcli)进行部署。
看来我们应该更新 AWSEBCLI 来最终解决这个问题。
【讨论】:
以上是关于AWS Elastic Beanstalk - 错误 requirements.txt的主要内容,如果未能解决你的问题,请参考以下文章
AWS Elastic Beanstalk CLI 安装错误