web-dev-qa-db-de.com

Python-, PyInstaller-Fehler: Kein Modul mit dem Namen "Encodings" und System-Codec fehlt

Ich verwende Python 3.3.3 und habe versucht, eine .exe aus einem einfachen .py-Skript zu erstellen.

Mein Skript sieht so aus:

import encodings

print('Test')

und korrekt ausgeführt.

Wenn ich versuche, es mit PyInstaller mit diesem Befehl zu erstellen:

pyinstaller --onefile Testmodul.py

und versuchen Sie, meine .exe zu öffnen, die folgende Fehlermeldung enthält: Fatal Python error: Py_Initialize: unable to load the file system codec, ImportError: No module named 'encodings'

Ich habe bereits versucht, das 'encodings'-Modul in mein Testskript zu importieren, aber es funktioniert immer noch nicht, ich habe auch py2exe ausprobiert und es funktioniert auch überhaupt nicht.

Gibt es etwas, was ich falsch mache? Muss ich etwas in meinem PFAD einstellen? Dort ist bereits der richtige Pfad zu "C:\Python33" enthalten.

EDIT: An alle mit diesem Problem: Ich habe es aufgegeben und nach einer Neuinstallation von Windows und Python und all den anderen Sachen habe ich es erneut versucht, genauso wie zuvor und es hat ohne Probleme funktioniert wenn Sie wirklich verzweifelt sind! 

15
Zesa Rex

Dies ist wahrscheinlich darauf zurückzuführen, dass pyinstaller das Modul nicht an erster Stelle enthielt. Versuchen Sie eine der folgenden Lösungen.

1) Geben Sie den Pfad zu Ihrem Modul während der Kompilierung an:

  • pyinstaller --onefile --paths =/path/to/module Testscript.py

2) Geben Sie den Pfad aus der .spec-Datei an:

  • führen Sie diesen Befehl zuerst aus (im Verzeichnis pyinstaller): 

    python Makespec.py --onefile /path/to/yourscript.py
    
  • jetzt haben Sie die .spec-Datei. Öffnen Sie es in Ihrem Texteditor und fügen Sie den Pfad zu Ihren Modulen zum Pathex hinzu.

    pathex=['C:\\path\\to\\module']
    
  • bauen Sie dann Ihr Programm auf:

     python Build.py /path/to/yourscript.spec
    

3) Verwenden Sie versteckte Importe:

  • pyinstaller --onefile --hidden-import = Modulname Testscript.py
  • sie können auch den hidden-Import in der .spec-Datei angeben.
2
A.Sherif

Welche Windows-Version verwenden Sie (7 oder 10)?

Dieses Problem scheint relativ zu den Benutzerrechten zu sein. Wenn Sie davon ausgehen, dass es mit diesem Problem vergleichbar ist, können Sie zunächst versuchen, die Datei exe mit Administratorrechten auszuführen. Versuchen Sie es erneut, wenn es erneut fehlschlägt "Pyinstaller" von einem cmd.exe ausführen, das mit Administratorrechten ausgeführt wird.

0
A STEFANI

Fügen Sie der Datei hook-encodings.py die Hook-Datei mit dem Namen C:\Python\Lib\site-packages\PyInstaller\hooks hinzu, und fügen Sie die folgende Codezeile hinzu, um das Codierungsmodul in der Hook-Datei zu erfassen

from PyInstaller.utils.hooks import collect_submodules

hiddenimports = collect_submodules('encodings')

das kann funktionieren, Diese Antwort könnte Ihnen helfen. Pyinstaller Fehler für Djnago-Projekt "ImportError: Kein Modul mit dem Namen 'Django.contrib.admin.apps'"

0