2008-10-07 6 views
5

J'ai produit un oeuf python utilisant setuptools et souhaite accéder à ses métadonnées lors de l'exécution. Je travaille actuellement ceci:Accès propres métadonnées d'oeuf python

import pkg_resources 
dist = pkg_resources.get_distribution("my_project") 
print(dist.version) 

mais cela fonctionnerait probablement incorrectement si j'avais plusieurs versions du même oeuf installé. Et si j'ai installé les deux versions d'oeuf et de développement, l'exécution de ce code à partir de la version de développement ramasserait la version de l'oeuf installé.

Alors, comment puis-je obtenir des métadonnées pour mon oeuf pas un oeuf d'appariement aléatoire installé sur mon système?

Répondre

4

Je suis un peu nouveau pour Python aussi, mais d'après ce que je comprends:

Bien que vous pouvez installer plusieurs versions de l'œuf « même » (ayant le même nom), un seul d'entre eux seront disponibles pour un morceau de code particulier au moment de l'exécution (basé sur votre méthode de découverte). Donc, si votre œuf est celui d'appeler ce code, il doit avoir été sélectionné comme la version de my_project pour ce code, et votre accès sera à votre propre version.

0

Exactement. Donc vous devriez seulement pouvoir obtenir l'information pour l'oeuf actuellement disponible (singulier) d'une bibliothèque. Si vous avez plusieurs oeufs de la même bibliothèque dans votre dossier site-packages, vérifiez le fichier easy-install.pth dans le même dossier pour voir quel oeuf est vraiment utilisé :-)

Sur un site: Ceci est exactement le point de systèmes comme zc.buildout qui vous permet de définir la version exacte d'une bibliothèque qui sera mise à votre disposition par exemple lors du développement d'une application ou du service d'une application web. Ainsi vous pouvez par exemple utiliser la version 1.0 pour un projet et 1.2 pour un autre.

Questions connexes