PyInstaller-Spezifikationsdatei-Importfehler: „Kein Modul benannt“ wird behoben
Beim Versuch, ein Python-Skript mit PyInstaller zu erstellen, kann es vorkommen, dass Fehler „ImportError: Kein Modul namens ‚blah‘“. Dieses Problem tritt auf, wenn PyInstaller nicht alle erforderlichen Module in Ihre ausführbare Datei einschließt.
Konfiguration der Spezifikationsdatei
Die von Ihnen generierte Spezifikationsdatei enthält die folgende Analyse:
a = Analysis([os.path.join(HOMEPATH,'support/_mountzlib.py'), os.path.join(HOMEPATH,'support/useUnicode.py'), 'icinga.py'], pathex=['/home/user/projects/icinga_python/releases/v2.1'])
Diese Analyse identifiziert die Python-Dateien, die in Ihre ausführbare Datei aufgenommen werden sollen. Es scheint jedoch keine Module aus Paketen von Drittanbietern zu enthalten, wie etwa die Module „mysql“ oder „urllib2“.
Dynamische Importe
Wenn ja Das Python-Skript importiert Module dynamisch, z. B. mithilfe des Moduls „importlib“. PyInstaller kann sie möglicherweise nicht in Ihre ausführbare Datei einbinden. Dies liegt daran, dass dynamische Importe in Ihrem Code nicht explizit deklariert sind.
Fehler beheben
Um diesen Fehler zu beheben, haben Sie zwei Möglichkeiten:
python pyinstaller --hidden-import mysql.connector --onefile myscript.py
Dieser Befehl weist PyInstaller an, das Modul „mysql.connector“ in Ihre ausführbare Datei aufzunehmen, auch wenn es nicht explizit in Ihren Code importiert wird .
Hinweis zur Option --onefile
Die '--onefile' Die Option hat keinen direkten Einfluss auf die Einbindung von Modulen in Ihre ausführbare Datei. Es packt einfach alle von PyInstaller generierten Dateien in eine einzige ausführbare Datei.
Das obige ist der detaillierte Inhalt vonWarum gibt PyInstaller „ImportError: Kein Modul namens ‚blah'' aus und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!