Wie erhalte ich eine Liste der auf meinem Computer installierten Python-Module?
Antworten
Zu viele Anzeigen?Sehr einfache Suche mit pkgutil.iter_modules
from pkgutil import iter_modules
a=iter_modules()
while True:
try: x=a.next()
except: break
if 'searchstr' in x[1]: print x[1]
Ich stieß auf eine benutzerdefinierte installierte Python 2.7 auf OS X. Es benötigt X11, um installierte Module aufzulisten (sowohl mit Hilfe und pydoc).
Um alle Module auflisten zu können, ohne X11 zu installieren, habe ich pydoc als http-Server laufen lassen, d.h.:
pydoc -p 12345
Dann ist es möglich, Safari direkt zu http://localhost:12345/
um alle Module zu sehen.
Warnung: Adam Matan rät von dieser Verwendung in pip > 10.0 ab. Lesen Sie auch den Kommentar von @sinoroc unten
Dies wurde inspiriert durch Adam Matans Antwort (die akzeptierte):
import tabulate
try:
from pip import get_installed_distributions
except:
from pip._internal.utils.misc import get_installed_distributions
tabpackages = []
for _, package in sorted([('%s %s' % (i.location, i.key), i) for i in get_installed_distributions()]):
tabpackages.append([package.location, package.key, package.version])
print(tabulate.tabulate(tabpackages))
die dann eine Tabelle in Form von
19:33 pi@rpi-v3 [iot-wifi-2] ~/python$ python installed_packages.py
------------------------------------------- -------------- ------
/home/pi/.local/lib/python2.7/site-packages enum-compat 0.0.2
/home/pi/.local/lib/python2.7/site-packages enum34 1.1.6
/home/pi/.local/lib/python2.7/site-packages pexpect 4.2.1
/home/pi/.local/lib/python2.7/site-packages ptyprocess 0.5.2
/home/pi/.local/lib/python2.7/site-packages pygatt 3.2.0
/home/pi/.local/lib/python2.7/site-packages pyserial 3.4
/usr/local/lib/python2.7/dist-packages bluepy 1.1.1
/usr/local/lib/python2.7/dist-packages click 6.7
/usr/local/lib/python2.7/dist-packages click-datetime 0.2
/usr/local/lib/python2.7/dist-packages construct 2.8.21
/usr/local/lib/python2.7/dist-packages pyaudio 0.2.11
/usr/local/lib/python2.7/dist-packages tabulate 0.8.2
------------------------------------------- -------------- ------
Dadurch können Sie leicht erkennen, welche Pakete Sie mit und welche ohne sudo
.
Eine Anmerkung am Rande: Ich habe festgestellt, dass ich, wenn ich ein Paket einmal über sudo
und einmal ohne, hat die eine Vorrang, so dass die andere nicht aufgeführt wird (es wird nur ein Ort angezeigt). Ich glaube, dass dann nur derjenige im lokalen Verzeichnis aufgeführt wird. Dies könnte verbessert werden.
Für den Fall, dass Sie eine anaconda python distribution installiert ist, können Sie auch
$conda list
zusätzlich zu den oben beschriebenen Lösungen.
Abgesehen von der Verwendung von pip freeze
Ich habe Folgendes installiert Dotter in meinen virtuellen Umgebungen.