Post

Python 项目打包为 exe 文件

项目写完之后需要打包、分发、安装。对于 Python 项目,了解到有 PyInstaller,cx_Freeze,py2exe。此博客介绍 cx_Freeze 打包为 exe 文件的步骤。

Python 项目打包为 exe 文件

1 前言

我的一个 PyQt 项目第一版完成了,需要考虑如何发布及后面的流程。

项目写完之后需要打包、分发、安装。

对于 Python 项目,了解到有 PyInstaller,cx_Freeze,py2exe。PyInstaller 简单尝试后,生成的 exe 文件双击后闪退,便没有深究。后尝试使用 cx_Freeze,很顺利。下面介绍 cx_Freeze 打包为 exe 文件的步骤。

2 使用 cx_Freeze 打包项目(好用)

建议为要打包的项目单独创建、配置一个虚拟环境。具体这样做是否能让打包成的.app文件更小还不清楚,但是亲测这样做速度会快很多。感觉原因是在打包的过程中,需要遍历的包更少。此外,可能老的环境下打包报错,但是在新的环境下打包就不会报错1。

以下是使用 cx_Freeze 打包 Python 项目的步骤:

  1. 安装 cx_Freeze

在命令行中运行以下命令来安装 cx_Freeze:

1
pip install cx_Freeze
  1. 创建 setup.py 文件

在你的项目目录中创建一个 setup.py 文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import sys
from cx_Freeze import setup, Executable

# 1. 要打包的Python脚本路径
script = "app.py"

# 2. 不在运行程序的时候出现cmd后台框
base = None
if sys.platform == "win32":
    base = "Win32GUI"

# 3. 创建可执行文件的配置
exe = Executable(
    script=script,
    base=base,
    target_name="MyProgram", # 自定义
    icon='./src/icon/icon_2_kao.ico' # 自定义
)

# 4. 打包的参数配置
options = {
    "build_exe": {
        "packages": [],
        "excludes": []
    }
}

setup(
    name="MyProgram", # 自定义
    version="1.0", # 自定义
    description="My Program Description", # 自定义
    options=options,
    executables=[exe]
)
  1. 打包项目

在命令行中运行以下命令来打包项目,这步会有很多输出,耐心等待。

1
python setup.py build
  1. 查看生成的 .exe 文件

打包完成后,会在项目目录下生成一个 build 文件夹,.exe 文件就在这个文件夹中,双击 exe 即可运行

3. References

This post is licensed under CC BY 4.0 by the author.