Ich habe verzweifelt versucht, mein Python pygame-Programm in Standalone-ausführbare Dateien zu kompilieren, um keinen Vorrang zu haben. PyInstaller funktioniert nicht richtig mit Pygame, Nuitka macht keine Standalone, die funktionieren und cx_Freeze ist die beste Wahl. Allerdings, wenn ich kompiliere mit meiner setup.py
, macht es eine Reihe von Dateien, aber die main
ausführbare Datei wird nicht ausgeführt.cx_Freeze: "Kein Modul mit dem Namen 'Codecs'"
Mein setup.py
ist wie folgt:
import sys
import cx_Freeze
executables = [cx_Freeze.Executable("main.py")]
images =["assets/images/1.png","assets/images/2.png","assets/images/3.png","assets/images/4.png","assets/images/5.png","assets/images/6.png","assets/images/7.png","assets/images/8.png","assets/images/tile.png","assets/images/mark.png","assets/images/mine.png","assets/images/overlay.png","assets/images/overlay_2.png","assets/images/background.png"]
cx_Freeze.setup(
name="Minesweeper",
options={"build_exe": {"packages":["pygame"],
"include_files":images}},
executables = executables
)
Es gibt andere Python-Dateien, die von main.py
referenziert werden; ist das wichtig?
Vielen Dank
Edit: Wie gewünscht Plattform ist Linux (Ubuntu 14.04); Python-Version ist 3.4.3; cx_Freeze ist cxfreeze 5.0, heruntergeladen über pip. Der genaue Fehler lautet:
Fatal Python error: Py_Initialize: Unable to get locale encoding
Traceback (most recent call last):
File "usr/lib/python3.4/encodings/__init__.py", line 31, in <module>
ImportError: No module named 'codecs'
Aborted (core dumped)
Welche Plattform? Welche Version von cx_Freeze? Welche Version von Python? Welche Ausnahme (und Call-Stack) bekommen Sie? Solange main.py die anderen Python-Dateien mit einer regulären Import-Anweisung importiert, sollten die anderen Dateien automatisch gefunden und eingebunden werden. –
@AnthonyTuininga an Frage angehängt. Wenn Sie weitere Informationen benötigen, fragen Sie einfach – JellyWX
Ubuntu hat eine modifizierte Python, die mit cx_Freeze, glaube ich, in Konflikt steht. Wenn Sie stattdessen Ihr eigenes Python erstellen, sollte das Problem verschwinden. Wenn das der Fall ist, lass es mich wissen. Ich werde sehen, ob ich ein Ubuntu-Setup auch auf meinem Ende testen kann. –