我正在尝试完全切换到buildout - 但我们的开发环境已经在/usr/lib/pythonxx/
中安装了很多东西
如何确保buildout不使用已安装在系统上的库 - 最终没有virtualenv?
例如 - 如何避免这种行为? :
> cat buildout.cfg
[buildout]
parts = django
[django]
recipe = zc.recipe.egg
eggs = django
interpreter = django
>bin/django
>>> import django
>>> django
<module 'django' from '/usr/lib/python2.6/site-packages/django/__init__.pyc'>
>>>
无论如何强制buildout不使用/usr/lib/python2.6中安装的鸡蛋?
答案 0 :(得分:9)
如果您想使用site-pakages或不使用以下两个指令之一,您可以告诉buildout:include-site-packages
和allowed-eggs-from-site-packages
来自buildout documentation:
然后,您可以使用include-site-packages = false和exec-sitecustomize = false buildout选项以消除访问 而不是你的Python的网站包 执行其sitecustomize文件,如果它 分别存在。
或者,您可以使用 让鸡蛋从 - 站点包 buildout选项作为全局感知 可能来自的鸡蛋白名单 站点包。该值默认为 “*”,接受所有鸡蛋。
答案 1 :(得分:3)
两种方式:
使用最新的1.5.something buildouts:默认情况下它们不使用系统包。
使用-s标志运行bootstrap命令:python bootstrap.py -s
,表示“没有站点包”。
答案 2 :(得分:0)
我在buildout 1.5之前使用的一个替代方案,它带有从系统python中排除egg的选项
的virtualenv
我们编写了一个virtualenv自定义引导程序来创建环境,获取bootstrap.py并放置一个最小的buildout.cfg,但你可以正常使用virtualenv:
cd project virtualenv --no-site-packages ./
wget http://...../bootstrap.py
touch buildout.cfg
source bin/activate
python bootstrap.py
bin/buildout
并且瞧,您的构建与virtualenv隔离