如何在bin / python bootstrap.py -d期间解决pkg_resources.VersionConflict错误

时间:2013-07-11 07:01:32

标签: 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/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'))

2 个答案:

答案 0 :(得分:50)

答案 1 :(得分:31)

您的网站包中安装了distribute setuptools分叉,但您的bootstrap.py正在尝试安装buildout 2.2.0,它使用新的合并 setuptools 0.7或更新的鸡蛋。

distribute的{​​{1}}分叉被合并回setuptools项目,转换造成了一些痛苦。

您的选择是:

告诉setuptools使用较早的bootstrap版本

使用zc.buildout选项运行bootstrap.py,强制它坚持使用特定的早期版本:

-v

buildout版本2.1.1不会将自身升级到2.2或更高版本并与您的 $ bin/python bootstrap.py -d -v 2.1.1 提供的distribute鸡蛋一起使用。

卸载旧setuptools

手动删除distribute目录中的所有distribute*pkg_resources.py*setuptools*文件:

site-packages

和(可选)从最新$ 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* 重新安装setuptools;当前版本为0.9.6,setuptools PyPI page将您链接到this ez_setup.py version

您还需要升级ez_setup.py脚本,请参阅下文。

使用最近的bootstrap.py

1.9版或更新版virtualenv(2013年3月发布)允许您使用virtualenv开关创建不带setuptools蛋的virtualenv:

--no-setuptools

使用它来创建虚拟环境python以运行$ virtualenv --no-setuptools buildout_env 。您仍然需要升级bootstrap.py。见下文。

升级您的bootstrap.py

对于bootstrap.py版本2.2.0及更高版本,zc.buildout脚本已更新为加载bootstrap.py-not-forked-version。在from github (link to the 2 branch version)抓取一个新副本,用它替换旧的setuptools,然后重新启动。

确保你真的删除了旧分叉 - bootstrap.py - 但是假装成为 - distribute蛋首先或者使用没有那个蛋的虚拟env python运行。见上文。