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

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

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

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

  1. PyInstaller
  2. Py2exe
  3. 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。

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


【解决方案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 上运行
猜你喜欢
  • 1970-01-01
  • 2021-06-05
  • 2022-08-03
  • 2019-06-29
  • 1970-01-01
  • 2017-06-03
  • 2018-12-13
  • 2021-08-01
  • 1970-01-01
相关资源
最近更新 更多