Buildout пытается обновить общесистемную установку Distribute и отказывается запускаться - PullRequest
9 голосов
/ 28 апреля 2011

Buildout не нравится моя общесистемная установка Distribute и он отказывается запускаться:

plone@s15447224:~/mybuildout$ python bootstrap.py 
Creating directory '/home/plone/mybuildout/bin'.
Creating directory '/home/plone/mybuildout/parts'.
Creating directory '/home/plone/mybuildout/eggs'.
Creating directory '/home/plone/mybuildout/develop-eggs'.
Getting distribution for 'distribute==0.6.14'.
Before install bootstrap.
Scanning installed packages
Setuptools installation detected at /usr/lib/python2.6/dist-packages
Non-egg installation
Removing elements out of the way...
Already patched.
/usr/lib/python2.6/dist-packages/setuptools.egg-info already patched.
After install bootstrap.
Creating /usr/local/lib/python2.6/dist-packages/setuptools-0.6c11-py2.6.egg-info
error: /usr/local/lib/python2.6/dist-packages/setuptools-0.6c11-py2.6.egg-info: Permission denied
An error occurred when trying to install distribute 0.6.14. Look above this message for any errors that were output by easy_install.
While:
  Bootstrapping.
  Getting distribution for 'distribute==0.6.14'.
Error: Couldn't install: distribute 0.6.14

Есть ли какой-нибудь способ сказать buildout установить собственный Distribute и не связываться с общесистемной установкой Python?

Я знаю о virtualenv.Но это кажется излишним просто установить virtualenv, чтобы сделать сборку счастливой.Должен быть какой-то другой путь.

Python 2.6.Plone 4.1.Ubuntu 10.4.

Ответы [ 5 ]

4 голосов
/ 29 апреля 2011

Да, используйте Buildout 1.5.x, который запускает Python с аргументом '-S' (-S: не подразумевать 'import site' при инициализации).

(и вы можете попробовать обновить общесистемный дистрибутив до последней версии)

3 голосов
/ 26 января 2012

Кажется, что это ошибка в distte_setup.py, в настоящее время обходной путь должен использовать setuptools bootstrap.py

РЕДАКТИРОВАТЬ: дальнейшие детали в https://bitbucket.org/tarek/distribute/issue/231/bootstrappy-tries-to-modify-global-python#comment-1254375 EDIT2: исправлено http://pypi.python.org/pypi/distribute/0.6.27#id2

3 голосов
/ 29 апреля 2011

Я тоже это видел.Я думаю, что всегда заканчивал тем, что «решал» это, действительно используя virtualenv или принимая тот факт, что глобальные setuptools должны быть обновлены, и делал это вручную с помощью чего-то вроде sudo easy_install -U setuptools (или, возможно, использовал распространять как имя пакета).

Возможно , что эта проблема вызвана только некоторыми версиями bootstrap.py.Но это всего лишь теория.Я добавляю это к большинству моих сборок Plone 3: http://svn.zope.org/*checkout*/zc.buildout/tags/1.4.4/bootstrap/bootstrap.py

0 голосов
/ 07 апреля 2012

Я использую ту же концепцию, что и @maurits. Вот фрагмент Makefile, который:

  1. создает virtualenv
  2. устанавливает buildout внутри virtualenv
  3. и запускает buildout -c buildout.cfg

Makefile:

PROJECT_NAME = <virtualenv_name>
PYTHON := $(shell if [ ! -z "`python --version 2>&1 | grep 'Python 2'`" ] ; then echo python; else echo python2; fi)

virtual:
    virtualenv --unzip-setuptools --prompt='$(PROJECT_NAME)::' --python=$(PYTHON) virtual \
    || \
    virtualenv --unzip-setuptools --python=$(PYTHON) virtual

development: virtual
    . virtual/bin/activate && make -C . construct-env

construct-env:
    pip install zc.buildout
    buildout -c buildout.cfg
0 голосов
/ 28 апреля 2011

кг предоставлены zope pin версии setuptools и распространяют: http://download.zope.org/zopetoolkit/index/1.0.2/ztk-versions.cfg

setuptools = 0.6c11 распространять = 0,6.14

Лучше всего удалить пакет python-setuptools из вашей системы. Загрузчик здесь, чтобы убедиться, что у вас есть setuptools или распространять (опция -d), но ваша сборка запрашивает эти версии.

Довольно странно.

...