415 votes

Trouver tous les paquets installés avec easy_install/pip ?

Est-il possible de trouver tous les paquets Python PyPI qui ont été installés avec easy_install ou pip ? Je veux dire, à l’exclusion de tout ce qui a été/est installé avec les distributions outils (dans ce cas apt-get sur Debian).

397voto

Paul Woolcock Points 4028

``va afficher une liste des packages installés et leur version. Il vous permet également d’écrire ces paquets vers un fichier qui permet ensuite de mettre en place un nouvel environnement.

http://www.PIP-installer.org/en/latest/index.html#freezing-Requirements

264voto

knitatoms Points 876

Depuis la version 1.3 de pip, vous pouvez maintenant utiliser``

Il a quelques options utiles, y compris la possibilité d’afficher les paquets obsolètes. Voici la documentation : http://www.pip-installer.org/en/latest/usage.html#pip-list

138voto

Daniel Sikes Points 51

Si quelqu'un se demande, vous pouvez utiliser la commande « pip show ».

Cette liste le répertoire d’installation du package donné.

25voto

barraponto Points 1423

Si Debian se comporte comme les dernières versions d'Ubuntu concernant l' pip install cible par défaut, c'est très simple: il s'installe à l' /usr/local/lib/ au lieu de /usr/lib (apt cible par défaut). Vérifier http://askubuntu.com/questions/173323/how-do-i-detect-and-remove-python-packages-installed-via-pip/259747#259747

Je suis une ArchLinux utilisateur et comme je l'ai expérimenté avec pip, j'ai rencontré ce même problème. Voici comment je l'ai résolu en Arc.

find /usr/lib/python2.7/site-packages -maxdepth 2 -name __init__.py | xargs pacman -Qo | grep 'No package'

La clé ici est - /usr/lib/python2.7/site-packages, ce qui est le répertoire pip installe, YMMV. pacman -Qo est comment l'Arche de la pac kage homme ager vérifie la propriété du fichier. No package est de retour, il donne lorsqu'aucun paquet possède le fichier: error: No package owns $FILENAME. Délicat solution de contournement: je suis l'interrogation sur __init__.py car pacman -Qo est un peu ignorants quand il s'agit de répertoires :(

Dans le but de le faire pour les autres distributions, vous devez savoir où la pip installe des trucs (juste sudo pip install quelque chose), comment interroger la propriété d'un fichier (Debian méthode est - dpkg -S) et qu'est-ce que le "package n'est propriétaire que de" chemin de retour (Debian est - no path found matching pattern). Les utilisateurs de Debian, méfiez-vous: dpkg -S échouera si vous lui donnez un lien symbolique. Juste résoudre d'abord par l'aide d' realpath. Comme ceci:

find /usr/local/lib/python2.7/dist-packages -maxdepth 2 -name __init__.py | xargs realpath | xargs dpkg -S | grep 'no path found'

6voto

MarkHu Points 377

Le dessous est un peu lent, mais il donne un bien mis en forme de la liste des packages pip est conscient. C'est-à-dire, pas tous d'entre eux ont été installés "par" pip, mais tous devraient pouvoir être mis à niveau par le pip.

$ pip search . | egrep -B1 'INSTALLED|LATEST'

La raison, c'est lent, c'est qu'il affiche le contenu de l'ensemble de pypi repo. J'ai déposé un ticket suggérant pip --list fournissent des fonctionnalités similaires, mais plus efficacement.

Exemple de sortie: (restreint la recherche à un sous-ensemble au lieu de '.' pour tous.)

$ pip search selenium | egrep -B1 'INSTALLED|LATEST'

selenium                  - Python bindings for Selenium
  INSTALLED: 2.24.0
  LATEST:    2.25.0
--
robotframework-selenium2library - Web testing library for Robot Framework
  INSTALLED: 1.0.1 (latest)
$

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X