如何解决bin / python bootstrap.py -d期间的pkg_resources.VersionConflict错误
我正在尝试使用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'))
-
您已经在站点软件包
distribute
中setuptools
安装了fork
,但是您bootstrap.py
正在尝试安装buildout
2.2.0,它使用新的 合并的setuptools
0.7或更新的egg。的
distribute
分支setuptools
已合并到setuptools
项目中,并且过渡引起一些麻烦。您的选择是:
告诉
bootstrap
使用早期zc.buildout
版本bootstrap.py
使用该-v
选项运行,强制其坚持使用特定的早期版本:$ bin/python bootstrap.py -d -v 2.1.1
2.1.1版的扩展版不会自行升级到2.2或更高版本,并且可以与您
distribute
提供的setuptools
egg一起使用。卸载旧
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,并且setuptools
PyPI页面将您链接到该ez_setup.py
版本。您还需要升级
bootstrap.py
脚本,请参见下文。使用最近的
virtualenv
1.9版或更高版本
virtualenv
(发布于2013年3月)使您可以setuptools
使用--no- setuptools
开关创建一个没有鸡蛋的virtualenv :$ virtualenv --no-setuptools buildout_env
使用它来创建一个虚拟env python来运行您的
bootstrap.py
。您仍然还需要升级bootstrap.py
。见下文。升级您的
bootstrap.py
。对于
zc.buildout
版本2.2.0及更高版本,bootstrap.py
脚本已更新,可以加载setuptools
非分支版本。从github获取一个新副本(链接到2分支版本),将其替换为旧版本bootstrap.py
,然后再次引导。确保确保先删除了旧的分叉的,
distribute
但setuptools
实际上是假装的,或者使用没有该鸡蛋的虚拟env python运行。往上看。