wake-up-neo.com

Wie liste ich alle installierten Pakete und deren Versionen in Python auf?

Gibt es eine Möglichkeit in Python, alle installierten Pakete und deren Versionen aufzulisten?

Ich weiß, dass ich in python/Lib/site-packages hineingehen und sehen kann, welche Dateien und Verzeichnisse vorhanden sind. Was ich suche nach etwas, das npm list, also npm-ls ähnelt.

107
jsalonen

Wenn Sie pip installiert haben und sehen möchten, welche Pakete mit Ihren Installer-Tools installiert wurden, können Sie dies einfach aufrufen:

pip freeze

Es enthält auch Versionsnummern für die installierten Pakete.

Update

pip wurde aktualisiert, um auch dieselbe Ausgabe wie pip freeze zu erzeugen, indem Folgendes aufgerufen wird:

pip list

Hinweis

Die Ausgabe von pip list ist anders formatiert. Wenn Sie also über ein Shell-Skript verfügen, das die Ausgabe von freeze analysiert (z. B. um die Versionsnummer zu ermitteln) und Ihr Skript so ändern möchte, dass es list aufgerufen wird, müssen Sie Ihren Analysecode ändern.

171
jlafay

help('modules') sollte es für Sie tun.

in 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

Wenn Sie Informationen zu Ihren installierten Python-Distributionen erhalten möchten und Ihre cmd-Konsole oder Ihr Terminal nicht dafür verwenden möchten, sondern über Python-Code, können Sie den folgenden Code verwenden (getestet mit Python 3.4):

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

Der Funktionsaufruf pip.get_installed_distributions(local_only=True) gibt eine Iteration zurück und aufgrund der for-Schleife und der Druckfunktion werden die in der Iteration enthaltenen Elemente durch neue Zeilenzeichen (\n) ..__ getrennt ausgedruckt. Das Ergebnis wird (abhängig von Ihren installierten Distributionen) so aussehen:

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

Sie können versuchen: Eigelb

Versuchen Sie für die Installation von Eigelb:

easy_install yolk

Yolk ist ein Python-Tool zum Abrufen von Informationen zu installiertem Python Pakete und Abfragepakete, die auf PyPI verfügbar sind (Python Package Index).

Sie können sehen, welche Pakete aktiv sind, nicht aktiv sind oder sich in der Entwicklung befinden. Modus und zeigen Sie, welche neuere Versionen verfügbar sind, indem Sie .__ abfragen. PyPI.

8
llazzaro

von der Kommandozeile 

python -c help('modules')

kann verwendet werden, um alle Module und für bestimmte Module anzuzeigen

python -c help('os')

Für Linux wird unten funktionieren

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

ja! Sie sollten pip als Python-Paket-Manager verwenden ( http://pypi.python.org/pypi/pip )

mit pip installierten Paketen können Sie a 

pip freeze

und es werden alle installierten Pakete aufgelistet. Sie sollten wahrscheinlich auch virtualenv und virtualenvwrapper verwenden. Wenn Sie ein neues Projekt beginnen, können Sie dies tun 

mkvirtualenv my_new_project

und dann (innerhalb dieser virtualenv) tun

pip install all_your_stuff

Auf diese Weise können Sie workon my_new_project und dann pip freeze sehen, welche Pakete für dieses virtualenv/project installiert sind. 

zum Beispiel:

➜  ~  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)➜  ~  

oder wenn Sie ein Python-Paket mit einer Datei Requirements.pip haben,

mkvirtualenv my_awesome_project
pip install -r requirements.pip
pip freeze

wird den Trick tun

5
Andbdrew

Um dies in späteren Versionen von pip (getestet auf pip==10.0.1) auszuführen, verwenden Sie Folgendes:

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

Hier ist eine Möglichkeit, dies mithilfe von PYTHONPATH anstelle des absoluten Pfads Ihres Python-Bibliotheksverzeichnisses zu tun:

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

[ 10:43 [email protected] ~/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

Meine Einstellung:

#!/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

Wenn Sie Anaconda verwenden:

conda list

werde es tun! Siehe: https://conda.io/docs/_downloads/conda-cheatsheet.pdf

0
A. Bollans