2008-10-07 14 views
5

He producido un huevo python usando setuptools y me gustaría acceder a sus metadatos en tiempo de ejecución. Actualmente estoy trabajando en esto:Accediendo a los propios metadatos del huevo python

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

pero esto probablemente funcionaría incorrectamente si tuviera varias versiones del mismo huevo instalado. Y si tengo ambos instalados la versión de huevo y desarrollo, entonces al ejecutar este código desde la versión de desarrollo obtendría la versión del huevo instalado.

Entonces, ¿cómo obtengo los metadatos para mi huevo, no hay algún huevo coincidente aleatorio instalado en mi sistema?

Respuesta

4

soy algo nuevo en Python también, pero por lo que entiendo:

Aunque puede instalar varias versiones de la "misma" huevo (con el mismo nombre), sólo uno de ellos estará disponible para cualquier fragmento de código en tiempo de ejecución (basado en su método de descubrimiento). Por lo tanto, si su huevo es el que llama a este código, ya debe haber sido seleccionado como la versión de my_project para este código, y su acceso será a su propia versión.

0

Exactamente. Por lo tanto, solo debería poder obtener la información del huevo (singular) actualmente disponible de una biblioteca. Si tiene varios huevos de la misma biblioteca en su carpeta de paquetes de sitio, verifique el archivo easy-install.pth en la misma carpeta para ver qué huevo se usa realmente :-)

Nota del sitio: Este es exactamente el punto de sistemas como zc.buildout que le permite definir la versión exacta de una biblioteca que estará disponible para usted, por ejemplo, mientras desarrolla una aplicación o sirve una aplicación web. Entonces, por ejemplo, puede usar la versión 1.0 para un proyecto y 1.2 para otro.

Cuestiones relacionadas