2012-04-18 19 views
410

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

Sé acerca 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?

+4

hay una propuesta de comando 'show' en pip: htt ps: //github.com/pypa/pip/issues/33 –

Respuesta

532

A partir del 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 debe hacer el trabajo muy bien.

$ pip freeze | grep Jinja2 
Jinja2==2.7.3 
+6

'pip freeze' command name para eso es raro. –

+4

@techtonik: Es para [congelar módulos actuales] (http://www.pip-installer.org/en/1.1/requirements.html) a un requirements.txt. – Hugo

+0

@Hugo: Usaría el nombre 'save'. –

13

También puede instalar yolk y luego ejecutar yolk -l que también da una salida agradable. Esto es lo que pasa por mi pequeña virtualenv:

(venv)CWD> /space/vhosts/pyramid.xcode.com/venv/build/unittest 
[email protected] 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 
51

simplemente envié una solicitud de extracción de PIP con la mejora Hugo Tavares dijo:

(specloud como ejemplo)

$ pip show specloud 

Package: specloud 
Version: 0.4.4 
Requires: 
nose 
figleaf 
pinocchio 
+1

Esto [no funciona] (http://stackoverflow.com/q/14060043/656912) para mí. – orome

+1

sí, obviamente. es una * solicitud de extracción *, es decir, quiere que el mantenedor de pip fusione sus cambios agregando el comando mencionado. – dom0

+1

Parece que ya está [fusionado] (http://www.pip-installer.org/es/latest/usage.html#pip-show). –

26

Pip 1.3 ahora también tiene un comando list:

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

y con --outdated como un argumento adicional, obtendrá las versiones actual y el último 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í combinar con AdamKG 's respuesta:

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

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

+1

Una opción interesante. Preferiría tenerlo en una lista de todos ellos, y dejarme saber si alguno de ellos está desactualizado. – ArtOfWarfare

2

La forma más fácil es la siguiente:

import jinja2 
print jinja2.__version__ 
+4

Esto solo funciona para los paquetes que tienen definida '__version__' en su código fuente. Muchos paquetes no. – spookylukey

5

Puede usar el comando grep para averiguarlo.

pip show <package_name>|grep Version 

Ejemplo:

pip show urllib3|grep Version 

mostrará sólo las versiones.

Metadatos-Version: 2.0
Versión: 1,12

4

Usted puede obtener una lista de los paquetes y sus versiones, por ejemplo,:

pip list 

Salida:

appdirs (1.4.3) 
BeautifulSoup (3.2. 
beautifulsoup4 (4.6 
certifi (2017.4.17) 
chardet (3.0.4) 
cookies (2.2.1) 
dj-database-url (0. 
Django (1.10.4) 
django-allauth (0.3 
django-filter (1.0. 
django-haystack (2. 
django-oauth-toolki 
django-recaptcha (1 
djangorestframework 
djangorestframework 
funcsigs (1.0.2) 
gunicorn (19.7.1) 
idna (2.5) 
Jinja2 (2.9.6) 
Markdown (2.6.8) 
MarkupSafe (1.0) 
mock (2.0.0) 
MySQL-python (1.2.5 
numpy (1.13.1) 
oauthlib (2.0.2) 
packaging (16.8) 
pandas (0.20.3) 
pbr (3.1.1) 
pep8 (1.7.0) 
pip (9.0.1) 
psycopg2 (2.7.1) 
PyJWT (1.5.2) 
pyparsing (2.2.0) 
python-dateutil (2. 
python-decouple (3. 
python-openid (2.2. 
pytz (2017.2) 
requests (2.18.1) 
requests-oauthlib (
responses (0.5.1) 
setuptools (35.0.1) 
six (1.10.0) 
social-auth-app-dja 
social-auth-core (1 
urllib3 (1.21.1) 
virtualenv (15.1.0) 
wheel (0.29.0) 
whitenoise (3.3.0) 
0

En las ventanas, puede emitir comandos como:

pip show setuptools | findstr "Version" 

Salida:

Version: 34.1.1 
Cuestiones relacionadas