我有一个GAE标准Python 3应用程序。
gcloud app deploy app.yaml --project XXX
和我的requirements.txt:
Werkzeug==1.0.1
Flask==1.1.2
Flask-Login==0.5.0
Flask-WTF==0.14.3
google-cloud-ndb==1.10.5
google-cloud-tasks==2.6.0
firebase-admin==5.0.3
我现在得到这个错误:
Updating service [default]...
WARNING: Found incompatible dependencies:
google-cloud-datastore 1.15.3 has requirement google-api-core[grpc]<2.0.0dev,>=1.14.0, but you have google-api-core 2.1.1.
google-cloud-core 1.7.2 has requirement google-api-core<2.0.0dev,>=1.21.0, but you have google-api-core 2.1.1.
google-cloud-core 1.7.2 has requirement google-auth<2.0dev,>=1.24.0, but you have google-auth 2.3.0.
虽然我的应用程序似乎是工作,我想摆脱这些错误,以防万一。
我的Mac上没有这些错误,也不需要google-api-core 2.1.1。
pipdeptree | fgrep api-core
的输出为:
- google-api-core [required: >=1.22.1,<3.0.0dev, installed: 1.31.3]
- google-api-core [required: >=1.21.0,<3.0.0dev, installed: 1.31.3]
- google-api-core [required: >=1.26.0,<3.0.0dev, installed: 1.31.3]
- google-api-core [required: >=1.21.0,<2.0.0dev, installed: 1.31.3]
- google-api-core [required: >=1.29.0,<3.0dev, installed: 1.31.3]
- google-api-core [required: >=1.21.0,<2.0.0dev, installed: 1.31.3]
- google-api-core [required: >=1.14.0,<2.0.0dev, installed: 1.31.3]
- google-api-core [required: >=1.21.0,<2.0.0dev, installed: 1.31.3]
- google-api-core [required: >=1.26.0,<3.0.0dev, installed: 1.31.3]
My requirements.txt如下所示。
是否有google-cloud-ndb, google-cloud-tasks和firebase-admin的版本组合在一起工作?
当requirements.txt
中没有显式设置版本号时,系统将安装最新版本。有时,一个包的最新版本与另一个包不兼容。
在您的项目中,google-api-core 2.1.1
是自动安装的,但您的google-cloud-datastore
版本需要比2.0.0
低的东西,但至少需要1.14.0
。同样的逻辑也适用于与google-cloud-core 1.7.2
相关的警告。
要解决这个问题,您应该使用警告消息中提供的版本范围显式地设置上述包的版本号。你必须选择对你有用的东西。例如,您可以在requirements.txt
文件中添加google-api-core 1.14.0
,但前提是您的代码中没有任何功能需要更高版本中的功能。
修复google-api-core
和google-auth
的版本可以消除版本不兼容。看起来这些库的版本2有很多变化(几个月前还是新的),而且firebase还没有跟上,所以我修复了最新的版本1。*版本。
这是一个使用最新库的requirements.txt
:
Werkzeug==1.0.1
Flask==1.1.2
Flask-Login==0.5.0
Flask-WTF==0.14.3
google-api-core==1.31.5 # Avoid conflicts
google-auth==1.35.0 # Avoid conflicts
google-cloud-ndb==1.11.1
google-cloud-tasks==2.7.1
firebase-admin==5.2.0
我希望pip
能解决这个问题…