2014-06-22 5 views
1

Je ne suis pas sûr si c'est un bug, ou si je fais quelque chose de mal. La situation est la suivante,pip affiche la version incorrecte du paquet

pip list -o 

produit une liste de paquets de python obsolètes ainsi que ce qui est supposé être la version installée actuelle. Le problème est que je suis assez sûr qu'il me donne la mauvaise information sur au moins certains paquets que je peux vérifier, comme dans l'exemple ci-dessous, que la version de ipython que pip pense est installé (2.0.0) n'est pas celui que j'ai quand j'exécute ipython depuis l'invite de commande (version == 2.1.0).

kolmogorov:~# pip list -o | head -15 
Warning: cannot find svn location for PEAK-Rules==0.5a1.dev-r2707 
Warning: cannot find svn location for prioritized-methods==0.2.2dev-20110830 
scipy (Current: 0.13.2 Latest: 0.14.0) 
plotly (Current: 1.0.30 Latest: 1.0.32) 
SOAPpy (Current: 0.12.21 Latest: 0.12.22) 
openpyxl (Current: 1.8.6 Latest: 2.0.3) 
networkx (Current: 1.8.1 Latest: 1.9) 
setuptools (Current: 3.4.1 Latest: 5.1) 
brewer2mpl (Current: 1.3.2 Latest: 1.4) 
repoze.who (Current: 1.0.19 Latest: 2.2) 
pandas (Current: 0.13.1 Latest: 0.14.0) 
pygeocoder (Current: 1.2.2 Latest: 1.2.5) 
ipython (Current: 2.0.0 Latest: 2.1.0) 
tornado (Current: 3.2 Latest: 3.2.2) 
Could not find any downloads that satisfy the requirement vboxapi 
Traceback (most recent call last): 
    File "/usr/bin/pip", line 9, in <module> 
    load_entry_point('pip==1.5.6', 'console_scripts', 'pip')() 
    File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 235, in main 
    return command.main(cmd_args) 
    File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 156, in main 
    logger.fatal('Exception:\n%s' % format_exc()) 
    File "/usr/lib/python2.7/dist-packages/pip/log.py", line 111, in fatal 
    self.log(self.FATAL, msg, *args, **kw) 
    File "/usr/lib/python2.7/dist-packages/pip/log.py", line 164, in log 
    consumer.flush() 
IOError: [Errno 32] Broken pipe 


kolmogorov:~# ipython 
Python 2.7.7 (default, Jun 3 2014, 16:16:56) 
Type "copyright", "credits" or "license" for more information. 

IPython 2.1.0 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 

Ma question est: Y at-il un moyen de faire comprendre à pip la bonne version des paquets python installés?

Répondre

0

Donc, la façon de le faire correctement est un peu plus complexe que ce que j'avais prévu, mais je dois le soumettre comme la bonne réponse car elle résout effectivement le problème. Supposons que la version du package qui est mal comprise par pip est pandas.

Alors que le comportement que vous observez que:

pip list --outdated 

dit que la version de pandas vous avez installé est 0.14.0; mais quand vous renseigner sur la version de pandas à dire ipython:

In [1]: import pandas 

In [2]: pandas.__version__ 
Out[2]: '0.14.1' 

Pour résoudre ce:

  1. run pip show pandas; il devrait vous dire sur l'emplacement de la distribution, dans mon cas /usr/local/lib/python2.7/dist-packages
  2. redirigent à cet endroit cd /usr/local/lib/python2.7/dist-packages
  3. run ls -lstrh pandas-0.14.*; vous devriez voir les fichiers associés à la fois votre version 0.14.1 et 0.14.0 celui que vous voulez vous débarrasser de
  4. course rm -rf pandas-0.14.0*.egg-info pandas-0.14.0*.pth

Cela devrait suffire!

pip show pandas 

devrait maintenant d'accord avec ce que pandas.__version__

2

Vous pouvez exécuter les commandes suivantes pour voir où le paquet est de:

which ipython 

et:

pip show ipython 

Vous pouvez avoir deux installations: l'une qui a été installé avec pip install ipython et une installation via un outil séparé (gestionnaire de paquets sur Linux ou Ports/infusion sur Mac).

+0

Je supprimer toutes les versions installées d'aptitude. – tipanverella

+0

super étrange: kolmogorov: ~ # pip show ipython --- Nom: ipython Version: 2.0.0 Lieu: /usr/local/lib/python2.7/dist-packages Nécessite: Kolmogorov: ~ # désinstaller pip ipython ne peut pas désinstaller 'ipython'. Aucun fichier n'a été trouvé pour être désinstallé. – tipanverella

+0

pip ne peut pas désinstaller tous les packages: http://pip.readthedocs.org/en/latest/reference/pip_uninstall.html. Il se peut aussi que le fichier de métadonnées soit manquant. –

Questions connexes