172

我正在尝试将一个相当简单的 Python 程序转换为可执行文件,但找不到我想要的东西,所以我有几个问题(我正在运行 Python 3.6):

到目前为止我发现的这样做的方法如下

  1. 下载旧版本的 Python 并使用pyinstaller/py2exe
  2. 在 Python 3.6 中设置一个虚拟环境,这将允许我做 1.
  3. 下载 Python 到 C++ 转换器并使用它。

这是我尝试过的/遇到的问题。

  • pyinstaller在它之前安装了所需的下载(pypi-something),所以它不起作用。下载必备文件后,pyinstaller仍然无法识别。
  • 如果我在 Python 2.7 中设置 virtualenv,我真的需要安装 Python 2.7 吗?
  • 同样,我看到的唯一 python 到 C++ 转换器只能在 Python 3.5 之前工作——如果尝试这样做,我是否需要下载并使用这个版本?
4

8 回答 8

154

在 Python 3.6 中将 .py 转换为 .exe 的步骤

  1. 安装Python 3.6
  2. 安装 cx_Freeze,(打开命令提示符并输入pip install cx_Freeze.
  3. 安装 idna,(打开命令提示符并输入pip install idna.
  4. 编写一个.py名为myfirstprog.py.
  5. setup.py在脚本的当前目录中创建一个名为的新 python 文件。
  6. setup.py文件中,复制下面的代码并保存。
  7. 按住 shift 右键单击​​同一目录,这样您就可以打开命令提示符窗口。
  8. 在提示符中,键入python setup.py build
  9. 如果您的脚本没有错误,那么创建应用程序就没有问题。
  10. 检查新创建的文件夹build。它里面有另一个文件夹。在该文件夹中,您可以找到您的应用程序。运行。让自己快乐。

请参阅我的博客中的原始脚本。

设置.py:

from cx_Freeze import setup, Executable

base = None    

executables = [Executable("myfirstprog.py", base=base)]

packages = ["idna"]
options = {
    'build_exe': {    
        'packages':packages,
    },    
}

setup(
    name = "<any name>",
    options = options,
    version = "<any number>",
    description = '<any description>',
    executables = executables
)

编辑:

  • 确保myfirstprog.py您应该将您的.py扩展文件名放在第 4 步中创建的名称;
  • 您应该将每个imported 包包含在您的.py列表packages中(例如packages = ["idna", "os","sys"]:)
  • any name, any number, any descriptioninsetup.py文件不应该保持不变,你应该相应地改变它(例如name = "<first_ever>", version = "0.11", description = '':)
  • 在开始第 8 步import之前,必须安装 ed 包。
于 2017-06-08T10:38:27.170 回答
108

PyInstaller 支持 Python 3.6。

在 Python 文件夹中打开一个 cmd 窗口(打开一个命令窗口并使用cd或按住 shift 键,在 Windows 资源管理器上右键单击它并选择“在此处打开命令窗口”)。然后输入

pip install pyinstaller

就是这样。

使用它的最简单方法是在命令提示符下输入

pyinstaller file_name.py

有关如何使用它的更多详细信息,请查看此问题

于 2017-01-10T17:23:01.247 回答
37

GitHub 上有一个名为 auto-py-to-exe 的开源项目。实际上它也只是在内部使用 PyInstaller,但由于它有一个简单的 GUI 来控制 PyInstaller,它可能是一个舒适的选择。与其他解决方案相比,它还可以输出独立文件。他们还提供了一个视频,展示了如何设置它。

图形用户界面:

自动 Py 到 Exe

输出:

输出

或者直接使用 pyinstaller:

pip install pyinstaller
pyinstaller filename
于 2018-07-28T13:31:46.257 回答
13

我不能告诉你什么是最好的,但我过去成功使用的一个工具是cx_Freeze。他们最近(2017 年 1 月 7 日)更新到版本 5.0.1,它支持 Python 3.6。

这是pypi https://pypi.python.org/pypi/cx_Freeze

该文档显示,根据您的需要,有不止一种方法可以做到这一点。 http://cx-freeze.readthedocs.io/en/latest/overview.html

我还没有尝试过,所以我将指向一篇讨论了简单方法的帖子。不过,有些事情可能已经改变,也可能没有改变。

如何使用 cx_freeze?

于 2017-01-31T09:30:08.533 回答
10

现在您可以使用 PyInstaller 对其进行转换。它甚至适用于 Python 3。

脚步:

  1. 启动你的电脑
  2. 打开命令提示符
  3. 输入命令pip install pyinstaller
  4. 安装后,使用命令“cd”进入工作目录。
  5. 运行命令pyinstaller <filename>
于 2018-09-19T09:03:40.443 回答
7

我一直在将 Nuitka 和 PyInstaller 与我的包 PySimpleGUI 一起使用。

Nuitka 让 tkinter 与 Nuikta 一起编译存在问题。项目贡献者之一开发了一个脚本来解决这个问题。

如果您不使用 tkinter,它可能对您“有效”。如果您使用的是 tkinter,请这样说,我会尝试发布脚本和说明。

PyInstaller 我正在运行 3.6,PyInstaller 运行良好!我用来创建我的 exe 文件的命令是:

pyinstaller -wF myfile.py

-wF 将创建单个 EXE 文件。因为我所有的程序都有一个 GUI 并且我不想显示命令窗口,所以 -w 选项将隐藏命令窗口。

这与运行看起来像用 Python 编写的 Winforms 程序一样接近。

[2019 年 7 月 20 日更新]

有使用 PyInstaller 的基于 PySimpleGUI GUI 的解决方案。它使用 PySimpleGUI。它叫做pysimplegui-exemaker,可以通过 pip 安装。

pip install PySimpleGUI-exemaker

安装后运行它:

python -m pysimplegui-exemaker.pysimplegui-exemaker

于 2018-09-19T14:10:59.380 回答
5

最好和最简单的方法肯定是auto-py-to-exe,我已经给出了下面的所有步骤和危险信号,您只需 5 分钟即可获得最终的 .exe 文件,因为您无需学习任何东西使用它。

1.) 我猜在某些设备上它可能不适用于 python 3.9。

2.) 在安装 python 时,如果您选择了“将 python 3.x 添加到路径”,请从开始菜单打开命令提示符,您必须输入pip install auto-py-to-exe才能安装它。您必须在命令提示符下按 enter 才能获得您正在输入的行的结果。

3.) 安装后,在命令提示符下,您只需键入auto-py-to-exe即可打开它。它将打开一个新窗口。第一次可能需要一分钟。此外,关闭命令提示符也会关闭 auto-py-to-exe,所以在准备好 .exe 文件之前不要关闭它。

4.) 将有用于制作 .exe 文件所需的一切按钮,并在下面共享它的屏幕截图。此外,对于图标,您需要一个 .ico 文件而不是图像,因此要转换它,您可以使用https://convertio.co/

5.) 如果您的脚本使用外部文件,您可以通过 auto-py-to-exe 添加它们,并且在脚本中,您必须对其路径进行一些更改。首先,import sys如果还没有写,你必须写,第二,你必须为 eg, 创建一个变量location=getattr(sys,"_MEIPASS",".")+"/",第三,location+"/example.png"如果 example.png 不在任何文件夹中,它的位置将是。

6.) 如果它显示任何错误,可能是因为名为 setuptools 的模块不是最新版本。要将其升级到最新版本,在命令提示符下,您必须编写pip install --upgrade setuptools. 此外,在脚本中,写作import setuptools可能会有所帮助。如果 setuptools 的版本超过 50.0.0,那么一切都应该没问题。

7.) 完成所有这些步骤后,在 auto-py-to-exe 中,转换完成后,.exe 文件将位于您选择的文件夹中(默认情况下,它是 'c:/users/name /output') 或者如果你有一个,它会被你的杀毒软件删除。每个防病毒软件都有不同的方法来恢复文件,所以如果您不知道,请尝试一下。

以下是如何使用 auto-py-to-exe 的简单 GUI 来制作 .exe 文件。

在此处输入图像描述

于 2020-11-27T09:52:59.283 回答
0

PyOxidizer可以是这里的一个选项。它在 Github 上受到 3.3k 星的欢迎。它的文件说

PyOxidizer 能够生成单个文件可执行文件 - 具有 Python 的副本及其所有静态链接的依赖项以及嵌入在可执行文件中的所有资源(如 .pyc 文件)。您可以将单个可执行文件复制到另一台机器并运行其中包含的 Python 应用程序。它只是工作。

虽然我不确定它是否能够生成 .exe 文件 PyOxidizer 肯定有助于打包和分发。

于 2021-11-07T18:40:29.113 回答