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

Pyt*_*eam 33 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'))
Run Code Online (Sandbox Code Playgroud)

Med*_*yed 51

你也可以尝试:

pip install --upgrade setuptools
Run Code Online (Sandbox Code Playgroud)

如此处所述https://askubuntu.com/questions/318824/how-to-solve-pkg-resources-versionconflict-error-during-bin-python-bootstrap-py/322701#322701

  • 这对我来说很有把握,而且比上面的建议要快得多......在我的情况下需要一个sudo (2认同)
  • 这对我有用,但不需要 `sudo`,因为我在 virtualenv 中操作。 (2认同)

Mar*_*ers 31

您已经在您的站点包distributesetuptools安装了fork ,但您bootstrap.py正在尝试安装buildout2.2.0,它使用新合并的 setuptools 0.7或更新的egg.

distributesetuptools被合并到setuptools项目和过渡会引起一些疼痛.

你的选择是:

告诉bootstrap使用早期zc.buildout版本

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

 $ bin/python bootstrap.py -d -v 2.1.1
Run Code Online (Sandbox Code Playgroud)

buildout的2.1.1版本不会将自身升级到2.2或更高版本,并且可以使用您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*
Run Code Online (Sandbox Code Playgroud)

和(可选)setuptools从最新版本重新安装ez_setup.py; 当前版本是0.9.6,setuptoolsPyPI页面链接到此ez_setup.py版本.

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

使用最近的 virtualenv

版本1.9或更新版本virtualenv(2013年3月发布)允许您setuptools使用--no-setuptools开关创建没有蛋的virtualenv :

$ virtualenv --no-setuptools buildout_env
Run Code Online (Sandbox Code Playgroud)

用它来创建一个虚拟的env python来运行你的bootstrap.py.你还需要升级你bootstrap.py.见下文.

升级你的bootstrap.py.

对于zc.buildout2.2.0及更高版本,bootstrap.py脚本已更新为加载setuptools-not-forked-version.从github获取一个新副本(链接到2分支版本),bootstrap.py用它替换旧的,再次引导.

确保你先删除旧的分叉,distributesetuptools首先要假装成蛋,或者使用没有那个蛋的虚拟env python运行.往上看.