Python 如何确保buildout不会';是否不使用已安装的软件包?
我试图完全切换到buildout,但是我们的开发环境已经在Python 如何确保buildout不会';是否不使用已安装的软件包?,python,django,virtualenv,buildout,Python,Django,Virtualenv,Buildout,我试图完全切换到buildout,但是我们的开发环境已经在/usr/lib/pythonxx/ 如何确保buildout不使用系统上已安装的库(最终没有virtualenv) 例如-如何避免这种行为?: > cat buildout.cfg [buildout] parts = django [django] recipe = zc.recipe.egg eggs = django interpreter = django >bin/django >>> i
/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'>
>>>
>cat buildout.cfg
[构建]
零件=django
[django]
配方=zc.recipe.egg
蛋=django
解释器=django
>宾/德扬戈
>>>进口django
>>>德扬戈
>>>
是否有任何方法可以强制buildout不使用安装在/usr/lib/python2.6中的蛋?您可以通过以下两条指令之一来判断buildout是否要使用站点包:
包括站点包
和允许站点包中的蛋
从构建:
然后,您可以使用include站点包
=false和exec sitecustomize=false取消访问的构建选项
到Python的站点包,而不是
如果需要,请执行其sitecustomize文件
分别存在
或者,您可以使用
允许从现场包装中取出鸡蛋
作为全局感知的构建选项
可能来自的鸡蛋的白名单
网站包。此值默认为
“*”,接受所有鸡蛋
两种方式:
- 使用最新的1.5.something构建:默认情况下,它们不使用系统包
- 使用-s标志运行bootstrap命令:
,这意味着“没有站点包”python bootstrap.py-s
cd project virtualenv --no-site-packages ./
wget http://...../bootstrap.py
touch buildout.cfg
source bin/activate
python bootstrap.py
bin/buildout
瞧,您的构建与virtualenv隔离这些选项仅在我使用z3c.recipe.scripts而不是zc.recipe.egg时对我有效;我不确定这是否是因为我做错了什么,但也许它会对某些人有用。我只能在构建的pypi页面上找到这条关键信息。文档似乎没有提到它(要么是这样,要么是搜索被破坏了)。为什么这不是默认值令我困惑。但我把它看作是服用类固醇的virtualenv,这可能不是完全的意图。是的,我也觉得这很令人困惑,pypi上的自述文件实际上是完整的文档,
buildout.org/docs
上的文档只涉及很少的主题。@Skirmantas am也有同样的问题。我从dist packages获得了一些python包,从我为项目创建的目录中获得了一些python包,我在buildout.cfg中设置了允许的来自site packages=false的egs,但我还是有问题。