Ich habe dieses einfache Python-Skript. Ich möchte eine Bedingung einfügen, die das Python-Modul überprüft (in meinem Beispiel unter subprocess
), bevor Sie es ausführen. Wenn das Modul nicht vorhanden ist, installieren Sie das Modul und führen Sie das Skript aus. Wenn das Modul vorhanden ist, überspringen Sie die Installation des Moduls und führen Sie das Skript aus. Ich kämpfe mit den meisten ähnlichen Szenarien, die ich online sehe.Python-Skript, um zu überprüfen, ob Modul vorhanden ist, sonst installiere Modul
import subprocess
ls_output = subprocess.check_output(['ls'])
print ls_output
'subprocess' in 2,7 gebaut und 3.x. Es wurde zu 2.4 hinzugefügt. Sie sollten nicht versuchen, es auf etwas 2.4 oder neuer zu installieren. –
Das klingt nach einer verdächtig falschen Sache, die ich machen möchte. Sie sollten die Bibliothek, die Sie installieren möchten, wahrscheinlich als eine Abhängigkeit von Ihrer Anwendung aufgelistet haben. Es wird dann installiert, wenn Ihre Anwendung installiert ist. Um eine Bibliothek zu installieren, würde Ihr Skript einen Superbenutzerzugriff erfordern, was ein Sicherheitsrisiko darstellt. Abgesehen davon, welche Installationsmethode würden Sie verwenden? 'pip',' conda', 'git'checkout &' setup.py'? Würden Sie auch ein virtuelles env verwenden? –
Ich habe gerade 'subprocess' als Beispiel benutzt, um meine Frage zu vereinfachen. Das eigentliche Modul ist Pycurl. Ich möchte, dass das Skript nur ausgeführt wird, wenn pycurl installiert ist. Und wenn es nicht installiert ist, dann installieren Sie über Pip und dann ausführen. – jebjeb