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!
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:
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:
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.
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'"