9

Buildout 不喜欢我的系统范围的分布式安装并拒绝运行:

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 来使构建愉快似乎有点过头了。一定有别的办法。

蟒蛇 2.6。克隆 4.1。Ubuntu 10.4。

4

5 回答 5

4

是的,使用 Buildout 1.5.x,它使用“-S”参数运行 Python(-S:初始化时不暗示“导入站点”)。

(您也可以尝试将系统范围的分发升级到最新版本)

于 2011-04-29T06:39:05.250 回答
3

我也见过这个。我想我总是通过确实使用 avirtualenv或接受应该更新全局 setuptools 并使用类似sudo easy_install -U setuptools(或者可能使用分发作为包名称)手动执行这一事实来“解决”它。

可能这个问题只是由某些版本的bootstrap.py. 但这只是一个理论。我将这个添加到我的大部分 Plone 3 构建中:http://svn.zope.org/*checkout*/zc.buildout/tags/1.4.4/bootstrap/bootstrap.py

于 2011-04-28T21:42:01.460 回答
3

似乎是distribute_setup.py中的一个bug,目前解决方法是使用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

于 2012-01-25T22:50:12.037 回答
0

zope pin setuptools 提供的kgs 版本并分发:http: //download.zope.org/zopetoolkit/index/1.0.2/ztk-versions.cfg

setuptools = 0.6c11 分发 = 0.6.14

最好的方法是从系统中删除 python-setuptools 包。bootstrap 在这里确保您有 setuptools 或分发(-d 选项),但您的构建要求这些版本。

很奇怪。

于 2011-04-28T18:50:21.697 回答
0

我使用与@maurits 相同的概念。这是 Makefile 片段:

  1. 创建虚拟环境
  2. 在 virtualenv 中安装 buildout
  3. 并运行 builtout -c builtout.cfg

生成文件:

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
于 2012-04-07T07:33:33.703 回答