[英]cx_Freeze: “No module named 'codecs'”
我一直在拼命试图将我的python pygame程序编译为独立的可执行文件,但没有成功。 PyInstaller无法与pygame一起正常使用,Nuitka无法使独立服务器正常工作,并且cx_Freeze正在寻找最佳选择。 但是,当我使用setup.py
编译时,它将生成一组文件,但是main
可执行文件无法运行。
我的setup.py
如下:
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
)
还有main.py
引用的其他python文件; 这有关系吗?
非常感谢
编辑:根据要求,平台是Linux(Ubuntu 14.04); python版本是3.4.3; cx_Freeze是cxfreeze 5.0,可通过pip下载。 确切的错误为:
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)
我在Ubuntu 15.10上的cx_Freeze 5.0.1和python 3.4.4有完全相同的问题。 正如@Anthony Tuininga所建议的那样,从源头重新安装python可解决此问题,例如, 从此源头开始 :
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
然后,我从源代码安装了cx_Freeze :
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
我也从源代码安装了pygame (因为您也正在使用它):
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.