Gibt es in Python eine Möglichkeit, alle installierten Pakete und ihre Versionen aufzulisten?
Ich weiß, dass ich hineingehen python/Lib/site-packages
und sehen kann, welche Dateien und Verzeichnisse existieren, aber ich finde das sehr umständlich. Was ich suche nach etwas, das ähnlich ist , npm list
dh NPM-ls .
Antworten:
Wenn Sie pip installiert haben und sehen möchten, welche Pakete mit Ihren Installationswerkzeugen installiert wurden, können Sie dies einfach aufrufen:
Es enthält auch Versionsnummern für die installierten Pakete.
Aktualisieren
pip wurde aktualisiert, um auch die gleiche Ausgabe wie
pip freeze
beim Aufruf von zu erzeugen :Hinweis
Die Ausgabe von
pip list
ist anders formatiert. Wenn Sie also ein Shell-Skript haben, das die Ausgabe von analysiert (möglicherweise um die Versionsnummer zu ermitteln),freeze
und Ihr Skript so ändern möchten, dass es aufgerufen wirdlist
, müssen Sie Ihren Parsing-Code ändern.quelle
pip list
als Alias für bereitstellenpip freeze
. Es ist intuitiv zu schreibenpip freeze > requirements.txt
, aber nichtpip freeze
.pip list
: pip-installer.org/en/latest/usage.html#pip-list - das ist also tatsächlich etwas, das bereits kommt!help('modules')
sollte es für dich tun.in IPython:
quelle
Package.version()
oderpackage.__version__
oderpackage.ver
oder eine beliebige Anzahl anderer MöglichkeitenWenn Sie Informationen zu Ihren installierten Python-Distributionen erhalten möchten und nicht Ihre Cmd-Konsole oder Ihr Terminal dafür verwenden möchten, sondern über Python-Code, können Sie den folgenden Code verwenden (getestet mit Python 3.4):
Der
pip.get_installed_distributions(local_only=True)
Funktionsaufruf gibt eine Iterable zurück und aufgrund der for-Schleife und der Druckfunktion werden die in der Iterable enthaltenen Elemente durch neue Zeilenzeichen (\n
) getrennt ausgedruckt . Das Ergebnis sieht (abhängig von Ihren installierten Distributionen) ungefähr so aus:quelle
pkg_resources
? AFAICR das ist ein Teil vonsetuptools
. Nichtpip
. Können wir sicher davon ausgehen , dasssetuptools
nur immer ehen je nach zur Verfügung stehen wirdpip
?Sie können versuchen: Eigelb
Versuchen Sie zum Installieren von Eigelb:
quelle
pip==10.0.1
Verwenden Sie Folgendes, um dies in späteren Versionen von pip (getestet am ) auszuführen :quelle
pydoc pip._internal
aber ich kann es nicht erreichenhelp(pip._internal)
, Pip .__ Builtins_ usw. Pip Referenzhandbuch ist auch leer._internal
. Es scheint, dass die Funktionalität nicht offiziell verfügbar ist. Sie sollten also vorsichtig damit umgehen!von der Kommandozeile
kann verwendet werden, um alle Module und für bestimmte Module anzuzeigen
Für Linux wird unten funktionieren
quelle
-bash: syntax error near unexpected token `('
Ja! Sie sollten pip als Python-Paketmanager verwenden ( http://pypi.python.org/pypi/pip ).
Mit pip installierten Paketen können Sie a
und es werden alle installierten Pakete aufgelistet. Sie sollten wahrscheinlich auch virtualenv und virtualenvwrapper verwenden . Wenn Sie ein neues Projekt starten, können Sie dies tun
und dann (innerhalb dieser virtuellen Umgebung) tun
Auf diese Weise können Sie
workon my_new_project
und dann ,pip freeze
um zu sehen , welche Pakete für das virtualenv / Projekt installiert sind.beispielsweise:
oder wenn Sie ein Python-Paket mit einer request.pip-Datei haben,
wird den Trick machen
quelle
pip
es auf diese Weise verwenden kann!virtualenv
mit globalen Site-Paketen müssen Sie dann verwendenpip list --local
.virtualenv
. Mir ist kein Grund bekannt, sie nicht zu verwenden, und niemand hindert Sie daran, sich auf isoliert zu beschränken,virtualenv
wenn Sie dies vorziehen.Meine Einstellung:
quelle
Hier ist eine Möglichkeit, dies
PYTHONPATH
anstelle des absoluten Pfads Ihres Python libs-Verzeichnisses zu tun :quelle
Wenn Sie Anakonda verwenden:
werde es tun! Siehe: https://conda.io/docs/_downloads/conda-cheatsheet.pdf
quelle
Wenn dies erforderlich ist, um in Python ausgeführt zu werden, können Sie einfach den Unterprozess aufrufen
quelle