我在Amazon Elastic Beanstalk羣集上部署了Flask應用程序。在我的本地計算機macOS上,我添加了與Google Cloud API的集成,並且我更新了我的requirements.txt以包含行google-cloud==0.27.0
。當我部署到彈性魔豆與更新的要求的文件,我在部署期間pip install
與錯誤失敗pip安裝google-cloud在aws ec2上與KeyError失敗:'google'
Running setup.py install for grpcio
Complete output from command /opt/python/run/venv/bin/python3.4 -c "import setuptools, tokenize;__file__='/tmp/pip-build-ve1vz0tx/grpcio/setup
.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-aszzosux-rec
ord/install-record.txt --single-version-externally-managed --compile --install-headers /opt/python/run/venv/include/site/python3.4/grpcio:
Failed to import the site module
Traceback (most recent call last):
File "/opt/python/run/venv/lib64/python3.4/site.py", line 890, in <module>
main()
File "/opt/python/run/venv/lib64/python3.4/site.py", line 848, in main
virtualenv_search_paths(sys.prefix)
File "/opt/python/run/venv/lib64/python3.4/site.py", line 638, in virtualenv_search_paths
addsitedir(sitedir, known_paths)
File "/opt/python/run/venv/lib64/python3.4/site.py", line 204, in addsitedir
addpackage(sitedir, name, known_paths)
File "/opt/python/run/venv/lib64/python3.4/site.py", line 173, in addpackage
exec(line)
File "<string>", line 1, in <module>
KeyError: 'google'
我能夠在本地安裝我的要求在執行Python 3的virtualenv,然而,當我創建一個類似的virtualenv在我的ec2上安裝需求,我得到了與部署期間相同的錯誤。有一件事我已經瞭解的是,EC2可能沒有安裝谷歌雲SDK,但是,我安裝了它在我的EC2(測試了virtualenv中的內外)使用以下命令如下here描述:
curl https://sdk.cloud.google.com | bash
exec -l $SHELL
gcloud init
如何診斷此錯誤並防止它發生?
我現在的假設是:
- 還有與谷歌路雲SDK的問題是安裝或在EC2上運行
- 有我requirements.txt文件的要求,一旦我之間有些衝突添加谷歌雲要求