2011-01-29 19 views
7

estoy tratando de cambiar totalmente a buildout - pero nuestro entorno de desarrollo ya ha instalado muchas cosas en /usr/lib/pythonxx/¿Cómo asegurarse de que Buildout no use los paquetes ya instalados?

¿Cómo puedo estar seguro de que buildout no utiliza las bibliotecas instaladas en el sistema ya - con el tiempo sin virtualenv?

Por ejemplo, cómo evitar este comportamiento? :

> 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'> 
>>> 

¿Hay alguna forma de forzar buildout no utilizar los huevos instalados en /usr/lib/python2.6?

Respuesta

9

Se puede decir buildout si desea utilizar el sitio-pakages o no con uno de estos dos directivas: include-site-packages y allowed-eggs-from-site-packages

De buildout documentation:

A continuación, puede utilizar incluir-sitio- paquetes = false y exec-sitecustomize = opciones de construcción falsas para eliminar el acceso a los paquetes de sitio de su Python y no a ejecutar su archivo sitecustomize, si existe , respectivamente.

alternativa, puede utilizar la opción buildout allowed-huevos-de-site-packages como una lista blanca Glob-consciente de los huevos que pueda venir de site-packages. Este valor predeterminado es "*", aceptando todos los huevos.

+0

Esas opciones solo me funcionaron cuando uso z3c.recipe.scripts en lugar de zc.recipe.egg; No estoy seguro de si esto es resultado de hacer algo mal, pero tal vez sea útil para alguien. – Daniel

+0

solo pude encontrar esta información crítica en la página pypi para la construcción. Los documentos @ http://www.buildout.org/docs/ no parecen mencionarlo (ni eso ni la búsqueda está rota). Por qué este no es el valor predeterminado me desconcierta. Pero lo estoy viendo como virtualenv en esteroides que pueden no ser buildouts intento completo. –

+0

Sí, también me resulta confuso, el archivo léame en pypi es en realidad la documentación completa y los documentos en 'buildout.org/docs' cubren solo algunos temas. – Ski

3

dos maneras:

  • utilizar la última buildouts 1.5.something: no utilizan los paquetes del sistema por defecto.

  • Ejecute el comando bootstrap con el indicador -s: python bootstrap.py -s, que significa "sin paquetes de sitio".

0

una alternativa que lo usamos antes buildout 1.5 que vienen con opciones para excluir a los huevos de su pitón sistema era

virtualenv

escribimos una rutina de carga personalizada virtualenv que crean el ambiente, ir a buscar de arranque .py y puso una buildout.cfg mínima, pero se puede usar normalmente virtualenv:

cd project virtualenv --no-site-packages ./ 
wget http://...../bootstrap.py 
touch buildout.cfg 
source bin/activate 
python bootstrap.py 
bin/buildout 

y listo, su buildout aislado con una vi rtualenv

Cuestiones relacionadas