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.
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.
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
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...
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.
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')"
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
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)
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
....
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)
Wenn Sie Anaconda verwenden:
conda list
werde es tun! Siehe: https://conda.io/docs/_downloads/conda-cheatsheet.pdf