2010-11-22 21 views

Répondre

1

Utilisation mr.developer: http://pypi.python.org/pypi/mr.developer

Il gère très bien produire des œufs, y compris en les ajoutant à développer des œufs en premier lieu.

+0

super mais j'ai besoin de les ajouter aux extra-chemins - il n'y en a pas tellement - 2 tops! – bx2

1

Je pense que vous voulez ajouter automatiquement des oeufs de développement à oeufs, plutôt que des extra-chemins. les extra-paths sont plus pour des choses qui ne sont pas eggy.

Si vous avez un œuf « foo » et un « bar » d'œufs et que vous voulez créer un TestRunner pour « foo », mais il a besoin « bar » sur le chemin et je ferais quelque chose comme:

[buildout] 
extensions = isotoma.extensions.autodevelop 
parts = test 

[test] 
recipe = pbp.recipe.noserunner 
eggs = foo 
defaults = foo 

et le setup.py pour foo aurait une ligne install_requires:

setup(
    name='foo', 
    packages=['foo'], 
    install_requires=['bar'] 
    ) 

l'extension autodevelop trouvera automatiquement des œufs source dans le même dossier que le buildout.cfg en recherchant setup.py et en les ajoutant à la liste des oeufs développés. Et buildout obtiendra les chemins du testeur juste parce qu'il regarde les dépendances de 'foo' et voit 'bar' doit également être sur le chemin. Ce sera le cas de toute recette qui prend une liste d'oeufs.

Si vous voulez mettre à jour automatiquement la liste des œufs, regardez buildout.eggtractor. Je ne le recommande pas cependant. Votre buildout doit être explicite sur les oeufs qu'il utilise (je veux dire utilise directement, vous n'avez qu'à lister foo dans mon exemple car cela dépend de la barre) et vos oeufs doivent être explicites sur les dépendances qu'ils ont. De cette façon, si vous voulez un déploiement d'oeufs, vous n'avez plus de travail à faire.

+0

Quels avantages offre isotoma.extensions.autodevelop par rapport à mr.developer? –

+0

mr.developer est idéal si vous voulez automatiser l'extraction de paquets, mais vous pouvez déjà les avoir vérifiés par d'autres moyens. J'ai utilisé autodevelop dans ma réponse parce que OP demandait comment les ajouter au chemin, pas comment les obtenir du tout. Si son buildout est dans la même caisse que ses oeufs alors mr.developer ne va pas aider? Il a juste besoin de s'assurer que ses oeufs sont dans $ {buildout: eggs} (ou une variable de recette équivalente) et que les extra-path n'auront plus d'importance. – Jc2k

+0

mr.developer aiderait encore; utilisez l'option 'fs' pour marquer un paquet comme étant déjà présent et il fournira toujours toutes les autres options de gestion, telles que l'activation et la désactivation. –