2012-04-18 11 views
410

Utilizzando pip, è possibile determinare quale versione di un pacchetto è attualmente installata?Trova quale versione del pacchetto è installata con pip

So di pip install XYZ --upgrade ma mi chiedo se c'è qualcosa come pip info XYZ. Se no, quale sarebbe il modo migliore per dire quale versione attualmente sto usando.

+4

c'è una proposta di comando 'show' in pip: htt ps: //github.com/pypa/pip/issues/33 –

risposta

532

A partire da pip 1.3, è disponibile il comando pip show.

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

Nelle versioni più vecchie, pip freeze e grep dovrebbe fare il lavoro bene.

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

Il nome del comando 'pip freeze' per quello è strano. –

+4

@techtonik: È per [congelamento dei moduli correnti] (http://www.pip-installer.org/en/1.1/requirements.html) in un requisito.txt. – Hugo

+0

@ Hugo: userei il nome 'save'. –

13

È anche possibile installare yolk e quindi eseguire yolk -l che dà anche qualche bella uscita. Ecco ciò che ho per il mio piccolo 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

Ho appena inviato una richiesta di pull in pip con la valorizzazione Hugo Tavares ha detto:

(specloud come esempio)

$ pip show specloud 

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

Questo [non funziona] (http://stackoverflow.com/q/14060043/656912) per me. – orome

+1

sì, ovviamente. è una * richiesta pull *, cioè vuole che il manutentore di pip unisca le sue modifiche aggiungendo il comando menzionato. – dom0

+1

Sembra che sia già [unito] (http://www.pip-installer.org/en/latest/usage.html#pip-show). –

26

Pip 1.3 ora ha anche un comando list:

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

e con --outdated come argomento in più, si ottengono le versioni attuali e più recenti dei pacchetti che si sta utilizzando:

$ 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) 

Quindi la combinazione con la risposta AdamKG s':

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

check pip-tools anche: https://github.com/nvie/pip-tools

+1

Un'opzione interessante. Preferirei che li elencasse tutti, e fammi sapere se qualcuno di loro è obsoleto, però. – ArtOfWarfare

2

Il modo più semplice è questo:

import jinja2 
print jinja2.__version__ 
+4

Funziona solo per i pacchetti che hanno definito '__version__' nel loro codice sorgente. Molti pacchetti no. – spookylukey

5

Puoi usare il comando grep per scoprirlo.

pip show <package_name>|grep Version 

Esempio:

pip show urllib3|grep Version 

mostrerà solo le versioni.

Metadata-Version: 2.0
Versione: 1,12

4

È possibile ottenere un elenco dei pacchetti e le loro versioni, per esempio:

pip list 

uscita:

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

su Windows, è possibile emettere il comando come ad esempio:

pip show setuptools | findstr "Version" 

uscita:

Version: 34.1.1 
Problemi correlati