web-dev-qa-db-fra.com

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

Existe-t-il un moyen dans 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 gênant. Ce que je recherche, ressemble à npm list i.e. npm-ls .

107
jsalonen

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

pip freeze

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

Mettre à jour

pip a été mis à jour pour produire également le même résultat que pip freeze en appelant:

pip list

Remarque

La sortie de pip list est formatée différemment. Par conséquent, si vous avez un script Shell qui analyse la sortie (peut-être pour saisir le numéro de version) de freeze et que vous souhaitez modifier votre script pour appeler list, vous devez modifier votre code d'analyse.

171
jlafay

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

en IPython:

In [1]: import                      #import press-TAB
Display all 631 possibilities? (y or 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
37
Ashwini Chaudhary

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

import pip #needed to use the pip functions
for i in pip.get_installed_distributions(local_only=True):
    print(i)

L'appel de fonction pip.get_installed_distributions(local_only=True) renvoie un élément itérable et, en raison de la boucle for et de la fonction d'impression, les éléments contenus dans cet élément sont imprimées, séparés par des caractères de nouvelle ligne (\n) ..__ ressemble à ceci:

cycler 0.9.0
decorator 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
jupyter-client 4.1.1
#... and so on...
22
frosty

Vous pouvez essayer: Jaune

Pour installer le jaune, essayez:

easy_install yolk

Yolk est un outil Python permettant d’obtenir des informations sur l’installation de Python packages et requêtes disponibles sur PyPI (Paquet Python Index).

Vous pouvez voir quels packages sont actifs, non actifs ou en développement mode et vous montrer quelles sont les versions les plus récentes disponibles en interrogeant PyPI.

8
llazzaro

depuis la ligne de commande 

python -c help('modules')

peut être utilisé pour voir tous les modules, et pour des modules spécifiques

python -c help('os')

Pour Linux ci-dessous fonctionnera

python -c "help('os')"
7
Npradhan

oui! vous devriez utiliser pip en tant que gestionnaire de paquets python ( http://pypi.python.org/pypi/pip )

avec les paquets installés, vous pouvez faire une 

pip freeze

et il listera tous les paquets installés. Vous devriez probablement aussi utiliser virtualenv et virtualenvwrapper . Lorsque vous démarrez un nouveau projet, vous pouvez faire 

mkvirtualenv my_new_project

et ensuite (à l'intérieur de ce virtualenv), faites

pip install all_your_stuff

De cette façon, vous pouvez workon my_new_project et ensuite pip freeze pour voir quels packages sont installés pour ce virtualenv/projet. 

par exemple:

➜  ~  mkvirtualenv yo_dude
New python executable in yo_dude/bin/python
Installing setuptools............done.
Installing pip...............done.
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/aaylward/dev/virtualenvs/yo_dude/bin/get_env_details

(yo_dude)➜  ~  pip install Django
Downloading/unpacking Django
  Downloading Django-1.4.1.tar.gz (7.7Mb): 7.7Mb downloaded
  Running setup.py Egg_info for package Django

Installing collected packages: Django
  Running setup.py install for Django
    changing mode of build/scripts-2.7/Django-admin.py from 644 to 755

    changing mode of /Users/aaylward/dev/virtualenvs/yo_dude/bin/Django-admin.py to 755
Successfully installed Django
Cleaning up...

(yo_dude)➜  ~  pip freeze
Django==1.4.1
wsgiref==0.1.2

(yo_dude)➜  ~  

ou si vous avez un paquet Python avec un fichier Requirements.pip,

mkvirtualenv my_awesome_project
pip install -r requirements.pip
pip freeze

fera l'affaire

5
Andbdrew

Pour exécuter cela dans les versions ultérieures de pip (testé sur pip==10.0.1), utilisez les éléments suivants:

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

Voici un moyen de le faire en utilisant PYTHONPATH à la place du chemin absolu de votre répertoire python libs:

for d in `echo "${PYTHONPATH}" | tr ':' '\n'`; do ls "${d}"; done

[ 10:43 Jonathan@MacBookPro-2 ~/xCode/Projects/Python for iOS/trunk/Python for iOS/Python for iOS ]$ for d in `echo "$PYTHONPATH" | tr ':' '\n'`; do ls "${d}"; done
libpython2.7.dylib pkgconfig          python2.7
BaseHTTPServer.py      _pyio.pyc              cgitb.pyo              doctest.pyo            htmlentitydefs.pyc     mimetools.pyc          plat-mac               runpy.py               stringold.pyc          traceback.pyo
BaseHTTPServer.pyc     _pyio.pyo              chunk.py               dumbdbm.py             htmlentitydefs.pyo     mimetools.pyo          platform.py            runpy.pyc              stringold.pyo          tty.py
BaseHTTPServer.pyo     _strptime.py           chunk.pyc              dumbdbm.pyc            htmllib.py             mimetypes.py           platform.pyc           runpy.pyo              stringprep.py          tty.pyc
Bastion.py             _strptime.pyc          chunk.pyo              dumbdbm.pyo            htmllib.pyc            mimetypes.pyc          platform.pyo           sched.py               stringprep.pyc         tty.pyo
Bastion.pyc            _strptime.pyo          cmd.py
....
2
chown

Ma prise

#!/usr/bin/env python3

import pkg_resources

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

Si vous utilisez l'anaconda:

conda list

le fera! Voir: https://conda.io/docs/_downloads/conda-cheatsheet.pdf

0
A. Bollans