2017-02-14 4 views
14

Ich benutze Python 3.3.3 und ich habe versucht, eine .exe von einem einfachen .py-Skript zu erstellen.Python, PyInstaller Fehler: kein Modul namens "Encodings" und System Codec fehlt

Mein Skript sieht wie folgt aus:

import encodings 

print('Test') 

und korrekt ausgeführt.

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

pyinstaller --onefile Testmodul.py

und versuchen, meine Exe zu öffnen es mit diesem Fehler erscheint: Fatal Python error: Py_Initialize: unable to load the file system codec, ImportError: No module named 'encodings'

Ich habe bereits versucht, die einführende 'encodings' Modul in meinem Testskript, aber es funktioniert immer noch nicht, ich habe auch versucht py2exe und es funktioniert auch überhaupt nicht.

Gibt es irgendetwas, was ich falsch mache? Muss ich etwas in meinem Pfad einrichten? Der korrekte Pfad zu "C: \ Python33" ist dort bereits enthalten.

EDIT: An alle mit diesem Problem: Ich gab auf, und nach einer Neuinstallation von Windows und Python und all den anderen Sachen, versuchte ich es erneut, auf die gleiche Weise wie zuvor und es funktionierte ohne ein Problem .. Es ist einen Versuch wert, wenn Sie wirklich verzweifelt sind!

+0

Hattest du eine Idee "wo ist deine SYS codieren Daten", wie funktioniert Python 'encodings'? Alle Betriebssystemdetails in der öffentlichen Verwendung? Initialize mean 'not registered'. Diese Frage bezieht sich auf Ihre 'Python Informationsebene'. Also ein Trick: Dieser Code arbeitet im Idle-Modus mit vielen Berechtigungen und registriert (nicht öffentlich) auf mehr Service/Klasse. Initialisiere für welchen Stil 'permanent/temporary'? – dsgdfg

+0

Ja, ich weiß 'das ist kein Low_level Kommentar'! – dsgdfg

+0

Duplizieren von http://stackoverflow.com/questions/5694706/py-initialize-fails-unable-to-load-the-file-system-codec –

Antwort

2

Dies ist wahrscheinlich, weil pyinstaller das Modul an erster Stelle nicht enthalten. Sie können 2 Lösungen versuchen.

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

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

2) Geben Sie den Pfad aus die .spec Datei:

  • Lauf dieser Befehl zuerst (in pyinstaller das Verzeichnis):

    python Makespec.py --onefile /path/to/yourscript.py 
    
  • Jetzt haben Sie die .spec-Datei. öffne es in deinem Texteditor und füge den Pfad zu deinen Modulen dem pathex hinzu.

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

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

3) Verwenden Sie versteckte Importe:

  • pyinstaller --onefile --hidden-import = modul Testscript.py
  • Sie können auch Hidden-Import in der .spec-Datei angeben.
+0

Oder Sie könnten (aus einem beliebigen Verzeichnis, wenn pyinstaller in Ihrem Pfad ist) ausführen "pyinstaller /pfad/zu/ihr.spec" – Back2Basics

0

helfen Welche Windows Version verwendest du (7 oder 10)?

Dieses Problem scheint zu Benutzerberechtigungen relativ zu sein ... und unter der Annahme, es this issue ähnlich ist, können Sie zunächst versuchen, Ihre exe ​​ Datei mit Administratorrechten ausgeführt werden, und wenn es wieder failling, versuchen "laufen Pyinstaller "von einer cmd.exe läuft mit Administratorrechten.