2017-12-31 40 views
0

Ich möchte im Skript testen, ob alle notwendigen Bibliotheken installiert sind oder nicht, wenn nicht, installieren Sie es. Hier ist mein Code:Wie kann ich eine Bibliothek im Skript installieren und importieren?

libs = ['lib1','lib2','lib3'] 
def import_m(name): 
    try: 
     import name 
    except: 
     pip.main(['install',name]) 
     import name     #look at this line 
for i in libs: 
     import_m(i) 
print("Done importing %s." % i) 

Aber wenn es läuft eine exection erhöhen:

ImportError: No module named name 

Die Linie mit diesem exection erwähnt werden von dem Kommentar angezeigt.

Wie kann ich es beheben?

+1

Beginnen mit der Überprüfung des Rückgabewerts von pip.main – tkhurana96

+0

@ tkhurana96 Was meinen Sie mit ** Rückgabewert **? –

+0

Werfen Sie einen Blick auf [diesen Link] (https://stackoverflow.com/questions/45799042/installing-packages-from-a-list-using-pip) – tkhurana96

Antwort

1

Sie gehen

importlib

für diese Funktionalität benötigen.

Eine ähnliche Frage here

Für Ihre Anforderung beantwortet wird versuchen Sie zuerst

Globals() [ 'module_name'] = importlib.import_module ('module_name')

mit einer Bibliothek zu importieren

Wenn es eine Ausnahme auslöst, müssen Sie es nur installieren und den obigen Code erneut ausführen. Versuchen Sie nicht, import module_name erneut auszuführen. Wenn module_name erfolgreich in Globals gespeichert ist, sind Sie alle gut zu gehen.

Verwandte Themen