2017-03-22 12 views
4

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) 
+0

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. –

+0

@AnthonyTuininga an Frage angehängt. Wenn Sie weitere Informationen benötigen, fragen Sie einfach – JellyWX

+1

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. –

Antwort

2

Ich hatte genau das gleiche Problem mit cx_Freeze 5.0.1, Python 3.4.4 auf Ubuntu 15.10. Wie durch @Anthony Tuininga vorgeschlagen, das Problem behoben, zum Beispiel von this source Python aus der Quelle neu zu installieren: Dann

wget https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tgz 
tar xzf Python-3.4.4.tgz 

# I had to specify the location of zlib in my case 
cd Python-3.4.4 
./configure --with-zlib-dir=/usr/lib/x86_64-linux-gnu 
sudo make altinstall 

, installierte ich cx_Freeze von Quelle:

wget https://github.com/anthony-tuininga/cx_Freeze/archive/5.0.1.tar.gz 
tar xzf 5.0.1.tar.gz 
cd ./cx_Freeze-5.0.1/ 
python3.4 setup.py build 
sudo python3.4 setup.py install 

ich auch pygame von der Quelle installiert (wie Sie es auch verwenden):

wget https://github.com/pygame/pygame/archive/1.9.3.tar.gz 
tar xzf 1.9.3.tar.gz 
cd ./pygame-1.9.3/ 
python3.4 setup.py build 
sudo python3.4 setup.py install 
+0

krank nehmen Sie Ihr Wort dafür! Danke für die Anleitung auch :) – JellyWX

Verwandte Themen