Python 忽略setuptools安装引起的冲突 TL;博士

Python 忽略setuptools安装引起的冲突 TL;博士,python,setuptools,conflicting-libraries,Python,Setuptools,Conflicting Libraries,如何指示setuptools忽略依赖冲突并正常进行 背景 我的Python项目在requirements.txt文件中声明了一组Google云依赖项。 这些谷歌云依赖关系有一个可传递的依赖冲突,最终得到解决,应用程序似乎运行正常 执行pip install-r requirements.txt成功完成,并且pipdeptree报告这些冲突,但是python setup.py install由于这些冲突而失败 pipdeptree生成的警告 这是不可能的setuptools以这种方式是严格的,必须

如何指示
setuptools
忽略依赖冲突并正常进行

背景 我的Python项目在
requirements.txt
文件中声明了一组Google云依赖项。 这些谷歌云依赖关系有一个可传递的依赖冲突,最终得到解决,应用程序似乎运行正常

执行
pip install-r requirements.txt
成功完成,并且
pipdeptree
报告这些冲突,但是
python setup.py install
由于这些冲突而失败

pipdeptree生成的警告

这是不可能的
setuptools
以这种方式是严格的,必须解决冲突。

什么是
可传递依赖性冲突
以及如何
最终解决冲突
?因此google云客户端库都依赖于
oauth2client
-这是一种可传递依赖性。依赖的依赖。当两个依赖库都依赖于另一个库的不同版本时,这就是冲突。pip可以通过从所有必需的版本中自动选择一个版本来解决这些冲突,并锁定该版本。哦,好的。我做了一些调查。似乎pip通过获取他将发现的第一个依赖项来解决依赖项冲突。似乎这样做是为了用户可以在cli中指定依赖项以覆盖其他依赖项。这在setup.py脚本中是不可接受的。如果setup.py存在依赖项冲突(实际上并不需要),那么作者应该修复该冲突。但也许我错了。在这种情况下,我自己无法修复它,因为这是谷歌库的可传递依赖项之间的冲突
Warning!!! Possibly conflicting dependencies found:
* gapic-google-cloud-pubsub-v1==0.15.3
- oauth2client [required: >=2.0.0,<4.0dev, installed: 4.0.0]
* google-gax==0.15.8
- oauth2client [required: >=2.0.0,<4.0dev, installed: 4.0.0]
* grpc-google-cloud-pubsub-v1==0.14.0
- oauth2client [required: >=2.0.0,<4.0dev, installed: 4.0.0]
* proto-google-cloud-pubsub-v1==0.15.3
- oauth2client [required: >=2.0.0,<4.0dev, installed: 4.0.0]
* grpc-google-iam-v1==0.11.1
- oauth2client [required: <4.0.0dev,>=2.0.0, installed: 4.0.0]
error: oauth2client 4.0.0 is installed but oauth2client<4.0dev,>=2.0.0 is required by set(['proto-google-cloud-pubsub-v1', 'gapic-google-cloud-pubsub-v1', 'google-gax'])
;