我试图使用弹性beanstalk将我的个人网站部署到aws。我的网站是django / python。 我一直遇到同样的问题。每次上传文件时,我都会在AWS控制台中收到以下错误:
Your requirements.txt is invalid. Snapshot your logs for details.
好的,所以我检查了日志,并从中注意到以下内容:
Error installing dependencies: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status 2Traceback (most recent call last):
File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 22, in main
install_dependencies()
pip version 7.1.2, however version 9.0.1 is available.You should consider upgrading via the 'pip install --upgrade pip' command.
我用谷歌搜索,发现很多人都有这个问题。他们建议手动更新pip并安装依赖项。所以我登录到服务器并通过更新pip启动。繁荣,另一个问题。当我输入pip --version更新到pip 9.0.1后,我得到以下内容:
-bash: /usr/bin/pip: no such file or directory
我似乎无法继续这样做。我认为弹性豆茎应该很容易但我会继续做越来越多的事情。 在今天的所有测试之后,我的智慧结束了。我可以请求任何帮助吗?接下来我该怎么办? 我想AWS不会为这样的东西提供支持,是吗? 感谢。
编辑。我使用的是python 3.6和django 1.11.4。
编辑2:添加了requirements.txt和01_packages.config以及django.config
这是requirements.txt:
altgraph==0.14
argon2-cffi==16.3.0
awsebcli==3.12.0
botocore==1.7.36
cement==2.8.2
cffi==1.10.0
colorama==0.3.7
cx-Freeze==5.0.2
Django==1.11.4
django-bootstrap3==9.0.0
django-braces==1.11.0
dnspython==1.15.0
docker-py==1.7.2
dockerpty==0.4.1
docopt==0.6.2
docutils==0.14
et-xmlfile==1.0.1
future==0.16.0
idna==2.6
jdcal==1.3
jmespath==0.9.3
macholib==1.8
olefile==0.44
pathspec==0.5.0
pefile==2017.9.3
Pillow==4.2.1
python-dateutil==2.6.1
pytz==2017.2
PyYAML==3.12
requests==2.9.1
semantic-version==2.5.0
six==1.10.0
tabulate==0.7.5
termcolor==1.1.0
untangle==1.1.1
virtualenv==15.1.0
websocket-client==0.44.0
这里是01_packages.config文件:
packages:
yum:
altgraph: []
argon2-cffi: []
awsebcli: []
botocore: []
cement: []
cffi: []
colorama: []
Django: []
django-bootstrap3: []
django-braces: []
dnspython: []
dockerpty: []
docopt: []
future: []
idna: []
macholib: []
pathspec: []
Pillow: []
python-dateutil: []
PyYAML: []
untangle: []
这里是django.config:
option_settings:
"aws:elasticbeanstalk:container:python":
WSGIPath: "davidbiendotcom/wsgi.py"
答案 0 :(得分:1)
要检查两件事。
首先,在运行pip之前,您需要键入以下内容进入正确的虚拟环境:
source /opt/python/run/venv/bin/activate
source /opt/python/current/env
其次,请检查您是否正在运行ebextensions文件右侧部分中的命令。如果您查看here,您可以看到我之前遇到的问题中不同命令部分的说明。如果你需要升级pip,则需要在container_commands部分完成。
回顾上面的附件我认为您正在尝试使用yum安装太多。
我建议像这样的django配置:
option_settings:
packages:
yum:
mysql-devel: []
gcc: []
make: []
gcc-c++: []
libjpeg-turbo-devel: []
python26-devel: []
postgresql94-devel: []
libcurl-devel: []
container_commands:
01_collectstatic:
command: "django-admin.py generate_favicon static/img/email_logo.png"
command: "find /opt/python/current/app/static -mmin -1440 | xargs touch"
command: "django-admin.py collectstatic --noinput --clear"
03_migrate:
command: "django-admin.py migrate --noinput"
leader_only: true
04_wsgipass:
command: 'echo "WSGIPassAuthorization On" >> ../wsgi.conf'
其他软件包应该使用pip自动安装。
如果您仍然遇到pip版本的问题,那么您可能需要使用requirements.txt安装其他软件包,然后升级pip并使用其他容器命令安装最终软件包。
如果您还在苦苦挣扎,请发布您的ebextensions文件和您的要求.txt