如何解决bin/python bootstrap.py-d期间pkg_resources.VersionConflict错误
我正在尝试使用python plone-devstart.py工具创建一个新的plone环境。我有一个引导错误。因此,我使用了项目目录中的bin/python bootstrap.py-d命令。它(bin/python bootstrap.py-d命令)以前工作得很好,但现在我遇到了如下错误如何解决bin/python bootstrap.py-d期间pkg_resources.VersionConflict错误,python,setuptools,buildout,Python,Setuptools,Buildout,我正在尝试使用python plone-devstart.py工具创建一个新的plone环境。我有一个引导错误。因此,我使用了项目目录中的bin/python bootstrap.py-d命令。它(bin/python bootstrap.py-d命令)以前工作得很好,但现在我遇到了如下错误 oomsys@oomsysmob-6:~/demobrun$ bin/python bootstrap.py -d Downloading http://pypi.python.org/packages/s
oomsys@oomsysmob-6:~/demobrun$ bin/python bootstrap.py -d
Downloading http://pypi.python.org/packages/source/d/distribute/distribute-
0.6.49.tar.gz
Extracting in /tmp/tmpDqVwYA
Now working in /tmp/tmpDqVwYA/distribute-0.6.49
Building a Distribute egg in /tmp/tmpv4Bzyv
/tmp/tmpv4Bzyv/distribute-0.6.49-py2.7.egg
Traceback (most recent call last):
File "bootstrap.py", line 118, in <module>
ws.require('zc.buildout' + VERSION)
File "build/bdist.linux-i686/egg/pkg_resources.py", line 698, in require
File "build/bdist.linux-i686/egg/pkg_resources.py", line 600, in resolve
pkg_resources.VersionConflict: (setuptools 0.6c11 (/home/oomsys/demobrun
/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg),
Requirement.parse('setuptools>=0.7'))
oomsys@oomsysmob-6:~/demobrun$bin/python bootstrap.py-d
正在下载http://pypi.python.org/packages/source/d/distribute/distribute-
0.6.49.tar.gz
在/tmp/tmpDqVwYA中提取
现在正在/tmp/tmpDqVwYA/distribute-0.6.49中工作
在/tmp/tmpv4Bzyv中构建分发鸡蛋
/tmp/tmpv4Bzyv/distribute-0.6.49-py2.7.egg
回溯(最近一次呼叫最后一次):
文件“bootstrap.py”,第118行,在
ws.require('zc.buildout'+版本)
文件“build/bdist.linux-i686/egg/pkg_resources.py”,第698行,在require中
文件“build/bdist.linux-i686/egg/pkg_resources.py”,第600行,解析
pkg_resources.VersionConflict:(setuptools 0.6c11(/home/oomsys/demobrun
/lib/python2.7/site packages/setuptools-0.6c11-py2.7.egg),
Requirement.parse('setuptools>=0.7'))
您的站点软件包中安装了distribute
分支setuptools
,但是您的bootstrap.py
正在尝试安装buildout
2.2.0,它使用新的合并setuptools
0.7或更新版本
setuptools
的distribute
分支被重新合并到setuptools
项目中,该转换引起了一些麻烦
你的选择是:
告诉bootstrap
使用早期的zc.buildout
版本
使用-v
选项运行bootstrap.py
,强制它使用特定的早期版本:
$ bin/python bootstrap.py -d -v 2.1.1
buildout的2.1.1版不会将自身升级到2.2或更高版本,并与您的发行版
提供的设置工具
一起使用
卸载旧的distribute
egg
从您的网站包
目录中手动删除所有distribute*
、pkg\u resources.py*
和setuptools*
文件:
$ rm -rf /home/oomsys/demobrun/lib/python2.7/site-packages/setuptools*
$ rm -rf /home/oomsys/demobrun/lib/python2.7/site-packages/distribute*
$ rm -rf /home/oomsys/demobrun/lib/python2.7/site-packages/pkg_resources.py*
和(可选)使用最新的ez_setup.py
从重新安装setuptools
;当前版本为0.9.6,并且提供了指向的链接
您还需要升级bootstrap.py
脚本,请参见下文
使用最近的virtualenv
virtualenv
(2013年3月发布)的1.9版或更高版本允许您使用--无设置工具开关创建不带setuptools
egg的virtualenv:
$ virtualenv --no-setuptools buildout_env
使用它创建一个虚拟环境python来运行bootstrap.py
。您还需要升级bootstrap.py
。见下文
升级您的bootstrap.py
。
对于zc.buildout
2.2.0版及以上版本,已更新bootstrap.py
脚本以加载setuptools
非分叉版本。在获取一个新副本,用它替换旧的bootstrap.py
,然后再次引导
一定要先删除旧的forked really-distribute
,但要假装是-setuptools
egg,或者使用没有该egg的虚拟环境python运行。请参见上文。您也可以尝试:
pip install --upgrade setuptools
如本文所述谢谢Martijn。您推荐的后续选项是什么?我已经卸载了distribute
,并在任何地方使用了较新的setuptools
,但我目前几乎没有遗留项目(旧代码)。你的情况可能会有所不同。这对我很有帮助,而且比上面的建议快得多。。。在我的案例中需要一个sudo这对我来说很有效,但不需要sudo
,因为我在一个虚拟环境中操作。我的错误:`File”/usr/lib/python2.6/site packages/pip/_internal/index.py',第536行{str str(c.version)for c in all_candidates},^SyntaxError:无效语法