我正在尝试使用CX_Freeze为多个平台分发python代码。在Windows中一切顺利,但我试图在Ubuntu 14.04 LTS和python 3.4上使用CX_Freeze 5。我能够无错误地运行CX_Freeze,但是当我运行生成的二进制文件时,我得到了
/Desktop/cx/cx_Freeze/samples/simple/build/exe.linux-i686-3.4$ ./hello
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted (core dumped)
即使使用"简单"也会发生这种情况。 CX_Freeze(以及我的程序)附带的示例,所以我认为问题与我的安装有关。
我能够使用此https://bitbucket.org/anthony_tuininga/cx_freeze/issue/32/cant-compile-cx_freeze-in-ubuntu-1304解决方法安装CX_Freeze。
我已经读过CX_Freeze无法以奇怪的方式查找导入到python中的模块,并且解决方案是手动将这些文件添加到setup.py文件并将文件放入相同的文件夹中,但是没有编码。 \ usr \ lib \ python3.4中的py文件但是有一个\ usr \ lib \ python3.4 \ encodings文件夹。
我确定我的问题是我不知道自己在做什么,但我尽可能地遵循了所有安装说明并仍然遇到了这个问题。经过两天的观察,我还没有找到一个好的答案,所以我会在这里问一下。如果找到答案,也许它会帮助其他人。感谢您提供任何建议。
编辑:从这篇文章的观点数量来看,这不是一个非常普遍的问题,但是我找到了一个解决方案,我想分享它,希望它能帮到某个人。解决方案是使用cx_Freeze 4.3.3而不是5.您可以在此处找到版本4.3.3作为tar.gz文件https://pypi.python.org/pypi?:action=display&name=cx_Freeze&version=4.3.3。然后,您需要在此帖子的第一个链接中进行更改,使其构建正确。这解决了我在Linux上的问题,但在OSX上没有。祝你好运!