2011-01-29 33 views
7

Sto cercando di cambiare completamente a buildout - ma il nostro ambiente di sviluppo già ha molta roba installata in /usr/lib/pythonxx/Come assicurarsi che buildout non usi i pacchetti già installati?

Come posso fare in modo che buildout non usa le librerie installate sul sistema già - alla fine, senza virtualenv?

Ad esempio, come evitare questo comportamento? :

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

Esiste un modo per forzare buildout di NON utilizzare le uova installati in /usr/lib/python2.6?

risposta

9

Si può dire buildout se si desidera utilizzare sito-pakages o meno con una di queste due direttive: include-site-packages e allowed-eggs-from-site-packages

Da buildout documentation:

È quindi possibile utilizzare includere-sito- pacchetti = false ed exec-sitecustomize = false opzioni di buildout per eliminare l'accesso ai pacchetti del sito Python e non eseguire il suo file sitecustomize, se esiste , rispettivamente.

In alternativa, è possibile utilizzare l'opzione buildout allowed-uova-da-site-packages come glob-aware whitelist di uova che possono provenire da site-packages. Il valore predefinito è "*", accettando tutte le uova.

+0

Queste opzioni hanno funzionato solo per me quando uso z3c.recipe.scripts anziché zc.recipe.egg; Non sono sicuro se questo è il risultato di me che sto facendo qualcosa di sbagliato, ma forse sarà utile a qualcuno. – Daniel

+0

ho potuto trovare solo questa informazione critica sulla pagina pypi per buildout. I documenti @ http://www.buildout.org/docs/ non sembrano menzionarlo (o quello o la ricerca è rotta). Perché questo non è il default mi confonde. Ma lo sto guardando come un virtuale su steroidi che potrebbero non essere intenti completi. –

+0

Sì, trovo anche questo confuso, il readme su pypi è in realtà la documentazione completa ei documenti su 'buildout.org/docs' riguardano solo pochi argomenti. – Ski

3

due modi:

  • utilizzare l'ultima buildout 1.5.something: non utilizzare i pacchetti di sistema di default.

  • Eseguire il comando bootstrap con il flag -s: python bootstrap.py -s, che significa "nessun pacchetto del sito".

0

un'alternativa che ho usato prima buildout 1.5 che vengono con le opzioni per escludere le uova dal pitone sistema era

virtualenv

scriviamo una bootstrap virtualenv personalizzato che creano l'ambiente, prendere bootstrap .py e mettere una buildout.cfg minimo, ma è possibile utilizzare normalmente virtualenv:

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

e voilà, il vostro buildout isolato con un vI rtualenv

Problemi correlati