pip安装/pytz版本控制冲突?
我在Ubuntu 12.04虚拟机上运行了pip安装/pytz版本控制冲突?,pip,protocol-buffers,versioning,pytz,Pip,Protocol Buffers,Versioning,Pytz,我在Ubuntu 12.04虚拟机上运行了pip安装protobuf==2.6.1作为项目install脚本的一部分。这会产生以下错误: Collecting protobuf==2.6.1 /usr/local/lib/python2.7/dist-packages/pip-7.1.2-py2.7.egg/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLConte
pip安装protobuf==2.6.1
作为项目install
脚本的一部分。这会产生以下错误:
Collecting protobuf==2.6.1
/usr/local/lib/python2.7/dist-packages/pip-7.1.2-py2.7.egg/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Downloading protobuf-2.6.1.tar.gz (188kB)
100% |################################| 188kB 2.5MB/s
Complete output from command python setup.py egg_info:
Installed /tmp/pip-build-AnwMIr/protobuf/.eggs/google_apputils-0.4.2-py2.7.egg
Traceback (most recent call last):
File "", line 20, in
File "/tmp/pip-build-AnwMIr/protobuf/setup.py", line 200, in
"Protocol Buffers are Google's data interchange format.",
File "/usr/lib/python2.7/distutils/core.py", line 112, in setup
_setup_distribution = dist = klass(attrs)
File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 268, in __init__
self.fetch_build_eggs(attrs['setup_requires'])
File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 313, in fetch_build_eggs
replace_conflicting=True,
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 836, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 1074, in best_match
dist = working_set.find(req)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 711, in find
raise VersionConflict(dist, req)
pkg_resources.VersionConflict: (pytz 2011k (/usr/lib/python2.7/dist-packages), Requirement.parse('pytz>=2010'))
为什么pip将pytz===2011k
和pytz>=2010
标记为冲突
我想在一个“requirements.txt”中列出我所有的pip需求。有没有办法在不触发上述错误的情况下执行此操作?我对pytz
本身没有明确、直接的要求
我还能够使用显式的pip install 2012b0
来安装protobuf
,但是pip install-r requirements.txt
不使用protobuf==2.6.1
和pytz>=2015
的requirements.txt
潜在相关链接:
- 不推荐使用的pytz版本控制解决方案:
- 简单版本冲突和pip冲突检查器示例:
- PEP440/Python版本控制包括pytz版本的特别说明和“==”的描述
- 依赖项检查/解析的pip开发线程
- 在requirements.txt中明确指定pytz的版本
- 重新排列requirements.txt中依赖项的顺序
- 手动解析我的完整依赖关系树
- 反复试验
观察这个线程,希望得到一个真正的解决方案:在我的MAC EL Capitan上,我在使用python 2.6版时遇到了类似的错误,错误如下
bash./configure cxflags=-Wno不推荐的声明
狂欢作乐
...
pkg_resources.VersionConflict:(putz 2012d(/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/Python),Requirement.parse('pytz>=2010'))
make[2]:***[../3rdparty/protobuf-2.6.1/python/dist/protobuf-2.6.1-py2.6.egg]错误1
生成[1]:***[all]错误2
make:**[所有递归]错误1
解决方案
更改了python版本>2.6,因为pytz与2.6的版本兼容性问题
但是,python3.4在使用./configure脚本时失败,脚本在
。正在检查python3.4版本>=2.6。。。配置:错误:太旧
所以我建议你坚持使用python2.7bash./configure cxflags=-Wno不推荐的声明PYTHON\u VERSION=2.7
bash#make
$ pipconflictchecker
--------------------------------------------------
Conflicts Detected
--------------------------------------------------
- python-dateutil(2.1) pandas(<2)