Как решить ошибку pkg_resources.VersionConflict во время загрузки bin/python bootstrap.py -d

Я пытаюсь создать новую среду plone с помощью инструмента python plone-devstart.py. Я получил ошибку начальной загрузки. Поэтому я использовал команду 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'))

person Python Team    schedule 11.07.2013    source источник


Ответы (2)


У вас есть distribute ответвление setuptools, установленное в пакетах вашего сайта, но ваш bootstrap.py пытается установить buildout 2.2.0, в котором используется новое яйцо merged setuptools 0.7 или более поздней версии.

Вилка 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 яйцом.

Удалите старое яйцо 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-страница содержит ссылку на < a href="http://cdn.bitbucket.org/pypa/setuptools/downloads/ez_setup.py" rel="noreferrer">эта ez_setup.py версия.

Вам также потребуется обновить скрипт bootstrap.py, см. ниже.

Используйте недавний virtualenv

Версия 1.9 или новее virtualenv (выпущена в марте 2013 г.) позволяет создать виртуальную среду без яйца setuptools с помощью переключателя --no-setuptools:

$ 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-но-претендующее-на-40_ яйцо, или запустите виртуальный env python, у которого нет этого яйца. См. выше.

person Martijn Pieters    schedule 11.07.2013
comment
Спасибо Мартин. Каков ваш рекомендуемый вариант в будущем? - person Aaron Williams; 26.07.2013
comment
Я удалил distribute и везде использую более новый setuptools, но в настоящее время у меня почти нет устаревших проектов (старый код). Ваша ситуация может отличаться. - person Martijn Pieters; 26.07.2013

Вы также можете попробовать:

pip install --upgrade setuptools

как описано здесь https://askubuntu.com/questions/318824/how-to-solve-pkg-resources-versionconflict-error-during-bin-python-bootstrap-py/322701#322701

person Medhat Gayed    schedule 30.09.2013
comment
это помогло мне и было намного быстрее, чем приведенные выше предложения... в моем случае нужен был sudo - person Jeremythuff; 18.03.2014
comment
Это сработало для меня, но не нуждалось в sudo, так как я работал в virtualenv. - person Chris Morgan; 21.03.2014
comment
ошибка для меня: `Файл /usr/lib/python2.6/site-packages/pip/_internal/index.py, строка 536 {str(c.version) для c в all_candidates}, ^ SyntaxError: неверный синтаксис - person Choix; 28.08.2018