我在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文件的要求,一旦我之间有些冲突添加谷歌云要求