38

我正在尝试使用 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'))
4

2 回答 2

60

你也可以试试:

pip install --upgrade setuptools

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

于 2013-09-30T19:53:10.877 回答
31

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

distribute分支setuptools被合并回setuptools项目中,过渡造成了一些痛苦。

您的选择是:

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

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

 $ bin/python bootstrap.py -d -v 2.1.1

buildout 的 2.1.1 版本不会将自身升级到 2.2 或更高版本,并且可以与您提供的distributeegg一起使用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从最新的重新安装ez_setup.py;当前版本是 0.9.6,setuptoolsPyPI 页面将您链接到此ez_setup.py版本

您还需要升级bootstrap.py脚本,见下文。

使用最近的virtualenv

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

$ virtualenv --no-setuptools buildout_env

使用它来创建一个虚拟环境 python 来运行你的bootstrap.py. 你仍然需要升级你的bootstrap.py。见下文。

升级你的bootstrap.py.

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

请确保您首先删除了旧的 fork 真正distribute- 但假装成为 - setuptoolsegg 或使用没有那个 egg 的虚拟 env python 运行。看上面。

于 2013-07-11T08:01:40.083 回答