【问题标题】:cx_Freeze: "No module named 'codecs'"cx_Freeze:“没有名为‘codecs’的模块”
【发布时间】:2017-08-15 04:12:02
【问题描述】:

我一直在拼命尝试将我的 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)

【问题讨论】:

  • 什么平台?什么版本的 cx_Freeze?什么版本的 Python?你得到什么异常(和调用堆栈)?只要 main.py 使用常规 import 语句导入其他 Python 文件,就应该自动找到并包含其他文件。
  • @AnthonyTuinga 附加到问题中。如果您需要更多信息,请询问
  • Ubuntu 有一个修改过的 Python,它与 cx_Freeze 冲突,我相信。如果您构建自己的 Python,则问题应该会消失。如果是这种情况,请告诉我。我会看看我是否也可以得到一个 Ubuntu 设置来测试。
  • @AnthonyTuinga 好的,谢谢,但我不确定我会怎么做。我现在找到了使用其他软件的解决方法。还是谢谢!

标签: python python-3.x pygame cx-freeze


【解决方案1】:

我在 Ubuntu 15.10 上遇到了与 cx_Freeze 5.0.1、python 3.4.4 完全相同的问题。正如@Anthony Tuininga 所建议的那样,从源代码重新安装 python 解决了这个问题,例如从 this source

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

【讨论】:

  • 相信你的话!也感谢您的指示:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多