191 votes

Comment répertorier tous les packages installés et leurs versions en Python ?

Existe-t-il un moyen en Python de répertorier tous les packages installés et leurs versions ?

Je sais que je peux aller dans python/Lib/site-packages et voir quels fichiers et répertoires existent, mais je trouve cela très maladroit. Ce que je cherche, c'est quelque chose de similaire à npm list c'est-à-dire npm-ls.

256voto

jlafay Points 4670

Si vous avez installé pip et que vous voulez voir quels packages ont été installés avec vos outils d'installation, vous pouvez simplement appeler ceci:

pip freeze

Cela inclura également les numéros de version des packages installés.

Mise à jour

pip a été mis à jour pour produire également la même sortie que pip freeze en appelant:

pip list

Remarque

La sortie de pip list est formatée différemment, donc si vous avez un script shell qui analyse la sortie (peut-être pour récupérer le numéro de version) de freeze et que vous souhaitez changer votre script pour appeler list, vous devrez changer votre code d'analyse.

65voto

Ashwini Chaudhary Points 94431

help('modules') devrait le faire pour vous.

dans IPython :

In [1]: import                      #import press-TAB
Afficher les 631 possibilités ? (o ou n)
ANSI                   audiodev               markupbase
AptUrl                 audioop                markupsafe
ArgImagePlugin         avahi                  marshal
BaseHTTPServer         axi                    math
Bastion                base64                 md5
BdfFontFile            bdb                    mhlib
BmpImagePlugin         binascii               mimetools
BufrStubImagePlugin    binhex                 mimetypes
CDDB                   bisect                 mimify
CDROM                  bonobo                 mmap
CGIHTTPServer          brlapi                 mmkeys
Canvas                 bsddb                  modulefinder
CommandNotFound        butterfly              multifile
ConfigParser           bz2                    multiprocessing
ContainerIO            cPickle                musicbrainz2
Cookie                 cProfile               mutagen
Crypto                 cStringIO              mutex
CurImagePlugin         cairo                  mx
DLFCN                  calendar               netrc
DcxImagePlugin         cdrom                  new
Dialog                 cgi                    nis
DiscID                 cgitb                  nntplib
DistUpgrade            checkbox               ntpath

32voto

frosty Points 468

Si vous souhaitez obtenir des informations sur vos distributions Python installées et ne pas utiliser votre console CMD ou terminal, mais plutôt via du code Python, vous pouvez utiliser le code suivant (testé avec python 3.4):

import pip # nécessaire pour utiliser les fonctions pip
for i in pip.get_installed_distributions(local_only=True):
    print(i)

L'appel de fonction pip.get_installed_distributions(local_only=True) retourne un itérable et en raison de la boucle for et de la fonction print, les éléments contenus dans l'itérable sont imprimés séparés par des caractères de nouvelle ligne (\n). Le résultat ressemblera (en fonction de vos distributions installées) à quelque chose comme ceci:

cycler 0.9.0
décorateur 4.0.4
ipykernel 4.1.0
ipython 4.0.0
ipython-genutils 0.1.0
ipywidgets 4.0.3
Jinja2 2.8
jsonschema 2.5.1
jupyter 1.0.0
client de jupyter 4.1.1
#... et ainsi de suite...

16voto

alfredocambera Points 539

Mon avis :

#!/usr/bin/env python3

import pkg_resources

dists = [str(d).replace(" ","==") for d in pkg_resources.working_set]
for i in dists:
    print(i)

13voto

exhuma Points 3619

Pour exécuter ceci dans les versions ultérieures de pip (testé sur pip==10.0.1), utilisez ce qui suit :

from pip._internal.operations.freeze import freeze
for requirement in freeze(local_only=True):
    print(requirement)

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