Encuentra qué versión del paquete se instala con pip

Usando pip, ¿es posible averiguar qué versión de un paquete está instalada actualmente?

Sé de pip install XYZ --upgrade pero me pregunto si hay algo como pip info XYZ . Si no, ¿cuál sería la mejor manera de decir qué versión estoy usando actualmente?

A partir de pip 1.3 , hay un comando pip show .

 $ pip show Jinja2 --- Name: Jinja2 Version: 2.7.3 Location: /path/to/virtualenv/lib/python2.7/site-packages Requires: markupsafe 

En versiones anteriores, pip freeze y grep deberían hacer el trabajo muy bien.

 $ pip freeze | grep Jinja2 Jinja2==2.7.3 

Acabo de enviar una solicitud de extracción en pip con la mejora que Hugo Tavares dijo:

(specloud como ejemplo)

 $ pip show specloud Package: specloud Version: 0.4.4 Requires: nose figleaf pinocchio 

Pip 1.3 ahora también tiene un comando de lista :

 $ pip list argparse (1.2.1) pip (1.5.1) setuptools (2.1) wsgiref (0.1.2) 

y con –desactualizado como un argumento adicional, obtendrá las versiones actual y más reciente de los paquetes que está utilizando:

 $ pip list --outdated distribute (Current: 0.6.34 Latest: 0.7.3) django-bootstrap3 (Current: 1.1.0 Latest: 4.3.0) Django (Current: 1.5.4 Latest: 1.6.4) Jinja2 (Current: 2.6 Latest: 2.8) 

Así que combinando con la respuesta de AdamKG:

 $ pip list --outdated | grep Jinja2 Jinja2 (Current: 2.6 Latest: 2.8) 

Compruebe también las herramientas pip : https://github.com/nvie/pip-tools

También puedes instalar yolk y luego ejecutar yolk -l que también da un buen resultado. Esto es lo que recibo por mi pequeño virtualenv:

 (venv)CWD> /space/vhosts/pyramid.xcode.com/venv/build/unittest project@pyramid 43> yolk -l Chameleon - 2.8.2 - active Jinja2 - 2.6 - active Mako - 0.7.0 - active MarkupSafe - 0.15 - active PasteDeploy - 1.5.0 - active Pygments - 1.5 - active Python - 2.7.3 - active development (/usr/lib/python2.7/lib-dynload) SQLAlchemy - 0.7.6 - active WebOb - 1.2b3 - active account - 0.0 - active development (/space/vhosts/pyramid.xcode.com/project/account) distribute - 0.6.19 - active egenix-mx-base - 3.2.3 - active ipython - 0.12 - active logilab-astng - 0.23.1 - active logilab-common - 0.57.1 - active nose - 1.1.2 - active pbkdf2 - 1.3 - active pip - 1.0.2 - active pyScss - 1.1.3 - active pycrypto - 2.5 - active pylint - 0.25.1 - active pyramid-debugtoolbar - 1.0.1 - active pyramid-tm - 0.4 - active pyramid - 1.3 - active repoze.lru - 0.5 - active simplejson - 2.5.0 - active transaction - 1.2.0 - active translationstring - 1.1 - active venusian - 1.0a3 - active waitress - 0.8.1 - active wsgiref - 0.1.2 - active development (/usr/lib/python2.7) yolk - 0.4.3 - active zope.deprecation - 3.5.1 - active zope.interface - 3.8.0 - active zope.sqlalchemy - 0.7 - active 

Puedes usar el comando grep para averiguarlo.

 pip show |grep Version 

Ejemplo:

 pip show urllib3|grep Version 

Sólo se mostrarán las versiones.

Metadatos-Versión: 2.0
Versión: 1.12

La forma más fácil es esta:

 import jinja2 print jinja2.__version__ 

En Windows, puede emitir comandos como:

 pip show setuptools | findstr "Version" 

Salida:

 Version: 34.1.1 

También hay una herramienta llamada pip-check que le brinda una visión general rápida de todos los paquetes instalados y su estado de actualización:

introduzca la descripción de la imagen aquí

No lo he usado yo mismo; Me topé con esto y esta pregunta del SO en rápida sucesión, y como no se mencionó …

Para Windows puedes

  1. Abre cmd y escribe python, presiona enter.

  2. escribe la importación y presiona enter.

  3. escribe ._version__ y presiona enter.

Como puede ver en la captura de pantalla aquí, estoy usando este método para verificar la versión del módulo en serie.

Imagen