Как убедиться, что buildout не использует уже установленные пакеты? - PullRequest
7 голосов
/ 29 января 2011

Я пытаюсь полностью переключиться на 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?

Ответы [ 3 ]

9 голосов
/ 30 января 2011

Вы можете указать buildout, хотите ли вы использовать site-pakages или нет с одной из следующих двух директив: include-site-packages и allowed-eggs-from-site-packages

Из сборки Документация :

Затем можно использовать опции build-site-packages = false и exec-sitecustomize = false, чтобы исключить доступ к пакетам сайта вашего Python и не выполнять его файл sitecustomize, если он существует, соответственно.1011 * В качестве альтернативы, вы можете использовать опцию компоновки allow-eggs-from-site-packages как белый список яиц, которые могут поступать из пакетов сайта.Это значение по умолчанию равно "*", принимая все яйца.

3 голосов
/ 30 января 2011

Два способа:

  • Используйте последние версии 1.5.something: они не используют системные пакеты по умолчанию.

  • Запустите команду bootstrap с флагом -s: python bootstrap.py -s, что означает «нет пакетов сайта».

0 голосов
/ 07 февраля 2011

одна альтернатива, которую я использовал до сборки 1.5, с опциями для исключения яиц из вашего системного питона, была

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

...