Warum gibt PyInstaller „ImportError: Kein Modul namens ‚blah'' aus und wie kann ich das beheben?

Barbara Streisand
Freigeben: 2024-11-14 19:36:02
Original
109 Leute haben es durchsucht

Why Is PyInstaller Throwing

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'])
Nach dem Login kopieren

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:

  1. Explizite Importe hinzufügen: Sie können ungenutzte Importe der fehlenden Module manuell zu Ihrem Python-Code hinzufügen. Dadurch wird PyInstaller gezwungen, sie in Ihre ausführbare Datei aufzunehmen.
  2. Option „--hidden-import“ verwenden: Mit der Option „--hidden-import“ können Sie PyInstaller anweisen, bestimmte Module einzuschließen Dies ist möglicherweise nicht explizit in Ihrem Code deklariert. Sie könnten beispielsweise den folgenden Befehl verwenden:
python pyinstaller --hidden-import mysql.connector --onefile myscript.py
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage