你想要把 Python 脚本打包成可以在 Windows 系统上独立运行的 EXE 可执行文件,不需要用户安装 Python 环境就能直接使用。

一、最常用的打包工具:PyInstaller

PyInstaller 是 Python 打包最主流、最易用的工具,支持 Windows、macOS、Linux 系统,能将 Python 脚本和依赖库一起打包成单个文件或文件夹形式的可执行程序。

1. 安装 PyInstaller

首先打开命令提示符(CMD)或终端,执行以下命令安装:

bash

运行

pip install pyinstaller

如果安装速度慢,可以使用国内镜像源:

bash

运行

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

2. 基础打包命令

假设你的 Python 脚本名为main.py,放在D:\my_project目录下:

步骤 1:进入脚本所在目录

bash

运行

cd D:\my_project
步骤 2:执行打包命令
  • 基础版(生成文件夹形式)

    bash

    运行

    pyinstaller main.py
    

    执行后会在当前目录生成build(临时文件)、dist(最终程序)、main.spec(配置文件),EXE 文件在dist\main目录下。

  • 单文件版(推荐,仅生成一个 EXE)

    bash

    运行

    pyinstaller -F main.py
    

    -F(全称--onefile)表示打包成单个 EXE 文件,生成的 EXE 在dist目录下。

  • 带图标版(美化 EXE)

    准备一个.ico格式的图标文件(如icon.ico),执行:

    bash

    运行

    pyinstaller -F -i icon.ico main.py
    

    -i(全称--icon)指定图标路径。 https://www.bejson.com/ui/icomaker/index.html

  • 无控制台版(GUI 程序专用)

    如果你的脚本是 GUI 程序(如 Tkinter、PyQt、PySide),打包时去掉控制台窗口:

    bash

    运行

    pyinstaller -F -w -i icon.ico main.py
    

    -w(全称--windowed)表示不显示控制台窗口。

3. 关键参数说明

参数

作用

-F/--onefile

打包成单个 EXE 文件(方便分发,但启动稍慢)

-D/--onedir

打包成文件夹形式(默认,启动快,文件多)

-w/--windowed

无控制台窗口(GUI 程序用)

-i/--icon

指定 EXE 图标(仅支持.ico 格式)

-n/--name

指定生成的 EXE 文件名

--clean

清理打包缓存,避免旧文件干扰

4. 常见问题及解决

  • 打包后 EXE 启动报错 “找不到模块”

    原因:PyInstaller 可能没识别到部分第三方库(如自定义模块、冷门库)。

    解决:在打包命令中指定额外的路径,或修改spec文件。

    示例(指定自定义模块路径):

    bash

    运行

    pyinstaller -F --paths=D:\my_project\libs main.py
    
  • EXE 文件过大

    原因:打包了不必要的依赖库(如 Python 标准库中用不到的部分)。

    解决:

    1. 使用虚拟环境,仅安装脚本必需的依赖;

    2. -F打包后,用 UPX 工具压缩 EXE(需提前下载 UPX,指定路径):

      bash

      运行

      pyinstaller -F --upx-dir=D:\upx main.py
      
  • EXE 在其他电脑运行提示 “缺少 MSVCRxxx.dll”

    原因:缺少 Visual C++ 运行库。

    解决:让用户安装 “Microsoft Visual C++ 2015-2022 Redistributable”,或打包时包含运行库(需手动复制)。

二、其他打包工具(备选)

如果 PyInstaller 不满足需求,可尝试以下工具:

  1. cx_Freeze:轻量级,支持跨平台,适合简单脚本;

  2. py2exe:仅支持 Python 2 和 Python 3 早期版本,基本淘汰;

  3. Nuitka:将 Python 代码编译成 C 代码再打包,运行速度更快,但配置稍复杂。

总结

  1. 核心工具:优先使用 PyInstaller,命令简单、兼容性好,pyinstaller -F -w main.py是 GUI 程序最常用的打包命令;

  2. 关键参数-F(单文件)、-w(无控制台)、-i(图标)是最常用的三个参数;

  3. 避坑要点:打包前清理缓存(--clean)、用虚拟环境减少依赖、解决模块缺失问题需指定路径。

打包完成后,只需将dist目录下的 EXE 文件(或文件夹)发给用户,即可在无 Python 环境的 Windows 电脑上直接运行。

✅ 方法二(推荐发布方案)—— PyInstaller 打包成 exe(无控制台)

如果你打算给别人用,一定选这个

🔹 安装(只需一次)

pip install pyinstaller

🔹 打包命令(重点)

pyinstaller --onefile --windowed todo_app.py

或(等价):

pyinstaller -F -w todo_app.py

参数解释(记住这两个):

  • -F / --onefile → 单个 exe

  • -w / --windowed不显示 CMD