Sie müssen überprüfen, ob es installiert ist oder nicht, bevor das Programm ausgeführt werden kann.
package-management
python
Hubatrix
quelle
quelle
pip install
. Wenn es bereits installiert ist, wird es nicht erneut installiert.Antworten:
Geben Sie die Shell ein :
pydoc modules
.Dadurch werden Module aufgelistet und Sie können das gewünschte Modul abrufen.
Gefunden auf Stackoverflow hier
quelle
Sie sollten
pip
denlist
Befehl 's mit grep verwenden, der nur installierte Pakete auflistet (nicht alle Module und auch deren Nachbarn):Wenn package_name mit mehreren installierten Paketen übereinstimmt, z. B. nach dem
boto
Zeitpunkt suchen, an dembotocore
auch installiert ist, kann die Verwendung von-w
anstelle von-F
helfen, wie @TaraPrasadGurung vorschlägt. Dies listet nicht das genaue Paket auf, da-w
Zeichen, die in Paketnamen häufig vorkommen, als Wortgrenzen angezeigt werden. Wenn Sie also oder und ruamel.yaml.cmd` installiert habenrequests
und genau eine Ausgabezeile benötigen, müssen Sie Folgendes tun:requests-cache
ruamel.yaml
Bitte beachten Sie, dass Sie, da es
.
bei der Verwendung mit einem beliebigen Zeichen-E
übereinstimmt, dieses maskieren müssen.¹¹ Und ja, das ist notwendig, da es ein Paket gibt
ruamel_yaml
. Nicht jeder Paketmanager istpip
kompatibel, wenn es um Namespace-Pakete geht.quelle
-w
als Wortgrenzen verwendet und sind in Paketnamen üblich. Ich bekomme mehrere Übereinstimmungen, wenn ich Ihren Vorschlag mitgrep -w ruamel.yaml
odergrep -w request
pip list | grep -F mxnet-cu101
drucktmxnet-cu101 1.5.0
, aber nicht genau dort, wo es installiert ist. Irgendeine Idee, wie man den installierten Pfad erhält? `Wenn das Paket beim Importieren nichts Verrücktes oder Zeitraubendes tut, können Sie versuchen, es tatsächlich zu importieren:
quelle
Ich habe vorhandene Antworten unvollständig gefunden und es fehlen ausreichend gute Beispiele. Hier ist die Lösung, für die ich mich entschieden habe:
Eine Github-Zusammenfassung dieses Beispiels finden Sie hier: https://gist.github.com/shaypal5/d505af9953cd86f59c750fa600ee4ba6
quelle
Sie können so etwas auch in Ihren Skripten verwenden.
Was Sie erhalten würden, wenn ein Paket nicht installiert wäre.
Was Sie erhalten würden, wenn ein Paket installiert wird.
Funktioniert in Python2 und Python3, und dann installieren Sie basierend auf dem Exit-Code.
quelle
Ich habe eine etwas strengere Version von Anthons Antwort zur Verwendung in einem Skript verwendet:
Die ersten beiden Greps sollen die Header-Zeilen von der Ausgabe von pip3 entfernen.
Der Schnitt wählt dann nur die Paketnamen aus (Verwerfen der Versionsnummern).
Dann kann der endgültige Grep eine genaue Suche nach dem relevanten durchführen
$package_name
Wenn das Paket gefunden wird, wird der Paketname angezeigt und mit dem Exit-Code 0 zurückgegeben. Wenn Sie den Paketnamen nicht sehen möchten, beenden Sie den Befehl mit
>/dev/null
quelle
in einer Python-Shell / Eingabeaufforderung. ::
quelle