2010-08-19 7 views

Respuesta

21

respuesta generalizada a partir de Matt, hacer un dir(YOURMODULE) y buscar __version__, VERSION o version. La mayoría de los módulos como __version__ pero creo que numpy usa version.version

+5

Solo para tener en cuenta que '__version__' es el estándar preferido para el nuevo código, como lo recomienda [PEP8] (http://www.python.org/dev/peps/pep-0008 /). Consulte [Forma estándar de insertar la versión en el paquete de Python?] (Http://stackoverflow.com/questions/458550/standard-way-to-embed-version-into-python-package) –

6

Creo que depende del módulo. Por ejemplo, Django tiene una variable VERSIÓN que puede obtener de django.VERSION, sqlalchemy tiene una variable __version__ que puede obtener de sqlalchemy.__version__.

+0

Django también tiene 'django.get_version () ', que devuelve una cadena en lugar de una tupla. En caso de duda, 'dir (módulo)'. – Seth

+0

O puede usar la función 'getmembers' del [módulo de inspección] (http://docs.python.org/library/inspect.html). –

+0

Lo anterior también funciona para simulacro. Sin suerte con .get_distribution ("xxx"). Version() –

45

Use pkg_resources (parte de setuptools). Cualquier cosa instalada desde PyPI al menos tiene un número de versión. No se necesita ningún paquete/módulo adicional.

>>> import pkg_resources 
>>> pkg_resources.get_distribution("simplegist").version 
'0.3.2' 
0

Algunos módulos (por ejemplo, azul) no proporcionan una cadena __version__.

Si el paquete se instaló con pip, lo siguiente debería funcionar.

# say we want to look for the version of the "azure" module 
import pip 
for m in pip.get_installed_distributions(): 
    if m.project_name == 'azure': 
     print(m.version) 
Cuestiones relacionadas