Question

J'ai créé un œuf de python avec setuptools et j'aimerais accéder à ses métadonnées au moment de l'exécution. Je travaille actuellement ceci:

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

mais cela ne fonctionnerait probablement pas correctement si plusieurs versions du même œuf étaient installées. Et si j’ai installé à la fois l’oeuf et la version de développement, l’exécution de ce code à partir de la version de développement permettra de récupérer la version de l’oeuf installé.

Alors, comment puis-je obtenir des métadonnées pour mon oeuf et non pour un oeuf de correspondance aléatoire installé sur mon système?

Était-ce utile?

La solution

Je suis aussi un peu nouveau sur Python, mais d'après ce que j'ai compris:

Bien que vous puissiez installer plusieurs versions du même " même " egg (ayant le même nom), un seul d'entre eux sera disponible pour un morceau de code particulier au moment de l'exécution (en fonction de votre méthode de découverte). Donc, si votre oeuf est celui qui appelle ce code, il doit déjà avoir été sélectionné comme version de mon_projet pour ce code, et vous aurez accès à votre propre version.

Autres conseils

Exactement. Vous ne devriez donc pouvoir obtenir les informations que sur l'oeuf (disponible au singulier) actuellement disponible 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 réellement utilisé: -)

Sur une note de site: c’est précisément le point de vue de systèmes tels que 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 de la desserte d’une application Web. Ainsi, vous pouvez par exemple utiliser la version 1.0 pour un projet et 1.2 pour un autre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top