一尘不染

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

python

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

阅读 171

收藏
2021-01-20

共1个答案

一尘不染

您已经在站点软件包distributesetuptools安装了fork
,但是您bootstrap.py正在尝试安装buildout2.2.0,它使用新的 合并的 setuptools0.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提供的setuptoolsegg一起使用。

卸载旧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月)使您可以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,然后再次引导。

确保确保先删除了旧的分叉的,distributesetuptools实际上是假装的,或者使用没有该鸡蛋的虚拟env python运行。往上看。

2021-01-20