如何使用 cxfreeze 将我的代码从 python3.6 转换为 exe?

Posted

技术标签:

【中文标题】如何使用 cxfreeze 将我的代码从 python3.6 转换为 exe?【英文标题】:How do I convert my code from python3.6 to exe using cxfreeze? 【发布时间】:2017-03-01 20:40:16 【问题描述】:

注意:在将其标记为重复之前,请先阅读整篇文章

我尝试了几个小时将我的 python 3.6 代码转换为 exe,我到处搜索并尝试了所有方法,最有用的地方是: Best method of converting .py to .exe for Python 3.6?

所以显然只有 3 种方式将 py 转换为 exe:

    PyInstaller Py2exe Cxfreeze

Pyinstaller 不支持 Python 3.6,py2exe 已经很过时了。

至于cxfreeze,听上去是支持Python 3.6的,所以我就是这么走的。

我到处搜索如何使用 cxfreeze,不幸的是,我发现的所有指南似乎都已过时:

http://cx-freeze.readthedocs.io/en/latest/overview.html 例如,本指南有三个路线,其中两个不起作用(第一个给我一个 .spec 文件,我不知道如何处理它,第二个给我一个错误,因为我没有cxfreeze.util 模块)和第三个对我来说太复杂了

How do I use cx_freeze?这个用的是第二条路线,还是不行

【问题讨论】:

Pyinstaller 3.6 支持正在迅速改进。您可以尝试使用development tip。 【参考方案1】:

由于某种原因,我不允许发表评论,所以这不是一个真正的答案,但就我而言,我从 https://pypi.python.org/pypi/cx_Freeze 安装了 cx_Freeze

当您安装它时,有一个未记录的额外步骤。使用 Windows CMD shell,进入你的 python 安装目录,进入 Scripts 子目录,你会发现一些名为 cxfreeze 的文件...

您需要通过键入 python cxfreeze-postinstall 来创建批处理文件

将创建一个名为 cxfreeze.bat 的文件,您可以将其移动到您的主要 python 文件夹或您的 python 程序所在的任何位置。

然后输入 cxfreeze mypythonprogram.py --target-dir dist

应该在 dist 目录中创建一个工作 exe。但是,它对我不起作用,因为我在作为 cxfreeze 安装一部分的 finder.py 文件中收到错误,所以我不知道我是否做错了什么或者这个版本完全有问题。

编辑:通过在 finder.py 文件(我的系统上为 C:\Python\Python36-32\Lib\site-packages\cx_Freeze\finder.py)中注释掉第 561 行,我能够运行它并生成EXE 似乎运行正常。

【讨论】:

不幸的是,我无法在另一台 PC 上运行 EXE,即使复制整个 dist 文件夹也是如此。当我在第二台 PC 上从 CMD 运行它时,它会查找大量 python 文件。基本上,您需要以与开发 PC 上完全相同的结构安装 python,否则它将无法工作。这非常令人失望......我不确定应该如何开发用于在 Windows 上公开分发的 python 程序。 我尝试使用 pyinstaller 作为替代方案,但它不支持 python 3.6 并且崩溃了。 开发版 3.3 运行没有错误,但不会创建一个 EXE,而是一个 .pyc 文件,如果没有安装 Python,它当然不能在 PC 上运行

以上是关于如何使用 cxfreeze 将我的代码从 python3.6 转换为 exe?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的代码从回调函数更改为承诺 [重复]

cxfreeze 中的 AVBin

如何将我的应用程序从 expo 弹出到裸反应本机代码

使用cxfreeze对python文件进行打包

如何让 py2app 和 cxfreeze 使用 Python 3 作为默认版本

CxFreeze 无法识别某些进口