[英]AWS errors when installing requirements with python 2.7 when EB environment is python 3.6
如何讓 AWS EB 實例使用實例上已安裝的 python 3 版本? 我無法獲得運行 Python 3.6 運行 Django 2.1+ 的新環境。
本地(不在虛擬環境中):
which python -> /usr/local/bin/python
python -V -> Python 2.7.15
which python3 -> /usr/local/bin/python3
python3 -V -> Python 3.6.5
which pip -> /usr/local/bin/pip
pip -V -> pip 18.0 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)`
which pip3 -> /usr/local/bin/pip3
pip3 -V -> pip 18.0 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
本地在 virtualenv mstFirst
中:
which python -> /Users/me/.virtualenvs/mstFirst/bin/python
which python3 -> /Users/me/.virtualenvs/mstFirst/bin/python
python -V -> Python 3.6.5
python3 -V -> Python 3.6.5
which pip -> /Users/me/.virtualenvs/mstFirst/bin/pip
which pip3 -> /Users/me/.virtualenvs/mstFirst/bin/pip3
pip -V -> pip 18.0 from /Users/me/.virtualenvs/mstFirst/lib/python3.6/site-packages/pip (python 3.6)
pip3 -V -> pip 18.0 from /Users/me/.virtualenvs/mstFirst/lib/python3.6/site-packages/pip (python 3.6)
aws --version -> aws-cli/1.16.9 Python/3.6.5 Darwin/17.7.0 botocore/1.11.9
eb --version -> EB CLI 3.14.4 (Python 3.6.5)
eb -list -> * mst-p3
eb -config ->
ApplicationName: mst
DateUpdated: 2018-09-07 02:15:51+00:00
EnvironmentName: mst-p3
PlatformArn: arn:aws:elasticbeanstalk:us-east-1::platform/Python 3.6 running on 64bit Amazon Linux/2.7.3
settings: …
文件:
“.elasticbeanstalk/config.yml”
branch-defaults:
master:
environment: mst-p3
environment-defaults:
mst-p3: …
global:
application_name: mst
default_platform: 64bit Amazon Linux 2018.03 v2.7.3 running Python 3.6
default_region: us-east-1
workspace_type: Application
…
“.ebextensions/01_packages.config”
packages:
yum:
git: []
python36: []
python36-devel: []
postgresql93: []
postgresql93-devel: []
mod24_ssl : []
commands:
pip_upgrade:
command: /opt/python/run/venv/bin/pip install --upgrade pip
ignoreErrors: false
嘗試eb deploy
時出錯,它在嘗試運行pip install -r requirements.py
時指向錯誤的 python 版本 (2.7):
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-jt3_s4in/slugger/
2018-09-07 03:28:35,315 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 186, 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)
遠程實例 ssh ( eb ssh
) :
pyhthon -V -> Python 2.7.14
pyhthon3 -V -> Python 3.6.5
我嘗試過的事情:
eb init
重新初始化 使用eb init
絕對有效:
eb init -p "64bit Amazon Linux 2017.09 v2.7.3 running Python 3.6" ...
然后,只需從.ebextension
文件中刪除所有python內容.ebextension
。
對於yum section
,我所使用的是:
packages:
yum:
postgresql94-devel: []
應該沒有必要升級點數。
您的問題是由Python 2.7安裝中的pip版本錯誤(Python 3.x pip)引起的。
AWS工具是為Python 2.7編寫的
我也不確定aws cli或eb是否已通過pip 18進行了完整測試。
從Python 2目錄中卸載pip。 卸載eb
重新安裝。
我建議即使不使用AWS CLI,也要先安裝它。 這將確保您的Python環境對於AWS工具而言設置正確。
您沒有指定操作系統,因此我無法為您提供特定於操作系統的卸載/安裝說明。
嘗試:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.