2010-09-15 5 views
0

Je tente d'écrire un package zc.buildout qui installe certains de ses exigences dans le répertoire de pièces. Une idée de comment cela peut-il être fait?zc.buildout, Installation des exigences dans le répertoire des pièces?

La raison en est que l'application zc.buildout elle-même est distribuée, mais certaines parties de mon paquet ne peuvent pas l'accompagner. Donc, à la place, je voudrais les installer dans le répertoire projet/pièces afin qu'ils puissent être utilisés localement, mais quand l'application est distribuée, ils sont laissés pour compte.

Pour clarifier davantage, prendre la snipplet setup.py suivante:

include_package_data = True, 
install_requires = [ 
    'some_package', 
    'some_other_package', 
], 
entry_points = { 

Maintenant, si je l'ai utilisé que, some_package et some_other_package seraient installés dans la section d'application distribuée. Ensuite, lorsque l'application est distribuée, ceux-ci iraient avec, ce qui ne devrait pas arriver. Notez que ces deux paquets sont des paquets de pypi, je n'ai pas de contrôle sur leur code.

Des idées?

Actuellement j'expérimente avec le téléchargement des paquets compressés moi-même, et les déballer dans les pièces dir. Cela devrait fonctionner, mais il manque évidemment une grande partie de la fonctionnalité du système d'emballage, car je suis en train de lier statiquement à une seule version du paquet.

Toute aide serait grandement appréciée!

Répondre

2

Vous pouvez utiliser omelette recipe afin de décompresser tous les oeufs et les mettre dans un répertoire dans le répertoire de pièces. Exemple buildout.cfg

[buildout] 
parts = my_omelette 
eggs = 
    BeautifulSoup 
    django-registration 
    other_package_from_pypi 

unzip = true 

[my_omelette] 
recipe = collective.recipe.omelette 
eggs = ${buildout:eggs} 

Cela installera et déballer tous les oeufs dans des pièces de répertoire/my_omelette

+0

Mon explication a quelques défauts dans ce plus je luttais et ai appris, mais cela est de loin une solution impressionnante à tout le problème! Merci!! –

Questions connexes