Pregunta

He producido un huevo de python utilizando setuptools y me gustaría acceder a sus metadatos en tiempo de ejecución. Actualmente tengo trabajando esto:

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 instaladas. Y si he instalado tanto egg como la versión de desarrollo, ejecutar este código desde la versión de desarrollo recogerá la versión del egg instalado.

Entonces, ¿cómo obtengo los metadatos para el huevo mi no un huevo coincidente al azar instalado en mi sistema?

¿Fue útil?

Solución

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

Aunque puede instalar varias versiones de " igual " Huevo (que tiene el mismo nombre), solo uno de ellos estará disponible para cualquier parte del código en tiempo de ejecución (según su método de descubrimiento). Entonces, si tu 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 tu acceso será a tu propia versión.

Otros consejos

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

En una nota del sitio: Este es exactamente el punto de los sistemas como zc.buildout, que le permite definir la versión exacta de una biblioteca que estará disponible para usted, por ejemplo, al desarrollar una aplicación o servir una aplicación web. Entonces, por ejemplo, puedes usar la versión 1.0 para un proyecto y 1.2 para otro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top