2011-01-29 91 views
7

我想完全切换到扩建 - 但我们的开发环境已经安装很多的东西在/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中的egg?

回答

9

你可以告诉扩建,如果你想使用站点pakages或不符合这两个指令之一:include-site-packagesallowed-eggs-from-site-packages

从扩建documentation

然后可以使用包括站点 - 软件包 = false和exec-sitecustomize =虚构扩展选项,以消除访问 到您的Python的网站包,而不是 执行其sitecustomize文件,如果它 分别存在。

或者,你可以使用 让鸡蛋从 - 站点包 扩建选项作为水珠感知 白名单鸡蛋可能来自 站点包。该值默认为 “*”,接受所有鸡蛋。

+0

这些选项只适用于我使用z3c.recipe.scripts而不是zc.recipe.egg;我不确定这是否是我做错事的结果,但也许对某人有用。 – Daniel 2012-02-14 03:51:23

3

两种方式:

  • 使用最新1.5.something网络建设:他们不使用默认的系统包。

  • 使用-s标志运行bootstrap命令:python bootstrap.py -s,表示“无站点包”。

0

一个替代方案,我没有扩建1.5附带从您的系统的Python排除鸡蛋选项之前使用是

的virtualenv

我们写了创建环境的virtualenv自定义启动,取引导的.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 

,瞧,你的扩建分离的VI rtualenv

相关问题