Python 如何强制pip使用依赖项的现有版本
我在一个Python 如何强制pip使用依赖项的现有版本,python,pip,protocol-buffers,Python,Pip,Protocol Buffers,我在一个virtualenv中,在requirements.txt中有一行pytz==2012h,由pip使用。当我运行pip install protobuf时,它会失败,回溯以以下内容结束: pkg_resources.VersionConflict: (pytz 2012h (/home/alex/work/app/venv/lib/python2.7/site-packages), Requirement.parse('pytz>=2010')) 这看起来很愚蠢,肯定是2012h
virtualenv
中,在requirements.txt中有一行pytz==2012h
,由pip
使用。当我运行pip install protobuf
时,它会失败,回溯以以下内容结束:
pkg_resources.VersionConflict: (pytz 2012h (/home/alex/work/app/venv/lib/python2.7/site-packages), Requirement.parse('pytz>=2010'))
这看起来很愚蠢,肯定是2012h>=2010
?我使用pdb
进行了深入研究,最终得出以下结论:
268 if not isinstance(prospective, Version):
269 -> return False
其中,prospective
是
。因此,版本比较失败(即,它决定不满足需求),因为它将2012h解释为LegacyVersion
。我能绕开这个吗?用安装protobuf
——没有dep
是不起作用的。可能是个愚蠢的问题,但你肯定是在调用virtualenv的pip
二进制文件吗?$which pip
返回什么?可能是一个愚蠢的问题,但您确实在调用virtualenv的pip
二进制文件吗?$哪个pip
返回什么?