首页 /编程语言和算法/Python
 py 将.py 文件打包成Windows可执行.exe文件
2025年9月30日 09:05

CMD命令:

pip3 install pyinstaller -i https://pypi.mirrors.ustc.edu.cn/simple/

例如,如果你的文件在 D:\my_scripts 文件夹下,你需要输入:

D:
cd D:\my_scripts

执行打包命令。这里有两种常见的模式:

模式一:生成单个独立的 .exe 文件(推荐)

这是最常用的方式,它会把所有依赖(包括 Python 解释器本身)都打包进一个 .exe 文件里,非常方便分发。

pyinstaller -F my.py

模式二:生成一个包含多个文件的文件夹

这种方式打包速度更快,启动程序时也可能更快,但你需要把整个文件夹都拷贝给别人。

pyinstaller -D my.py

如果要带图标:

pyinstaller -F -i my.ico my.py

-D 或 --onedir 是默认模式,即使你不写这个参数,PyInstaller 也会这么做。

-F 或 --onefile 参数是关键,表示生成单个文件。

所以批处理 getExe.bat可以写成:

cd %~dp0
pyinstaller -F -i my.ico my.py

这样就好生成了。

找到并运行你的 .exe 文件

打包完成后,PyInstaller 会在你的脚本目录下创建两个新文件夹:build 和 dist,以及一个 .spec 文件。

build 文件夹:包含打包过程中的临时文件,可以安全删除。

.spec 文件:打包的配置文件,一般不需要理会。

dist 文件夹:这是最重要的文件夹! 你的可执行文件就在这里面。

进入 dist 文件夹。

你会看到一个名为 my.exe 的文件。

现在,你可以直接双击运行它,或者将这个 dist 文件夹(模式二)或单独的 my.exe 文件(模式一)拷贝到任何没有安装 Python 的 Windows 电脑上运行。

常见问题与高级用法:

1. 打包 GUI 程序时,如何去掉黑色的命令行窗口?

如果你的 my.py 是一个图形界面程序(例如使用了 Tkinter, PyQt, wxPython 等),你肯定不希望运行时弹出一个黑色的命令行窗口。

只需要在打包命令中加入 -w 或 --windowed / --noconsole 参数即可。

pyinstaller -F -w my.py

2. 如何处理脚本中用到的图片、数据等外部文件?

如果你的脚本需要读取外部文件(例如 icon.ico, data.csv),直接打包会找不到这些文件。

简单粗暴的方法:手动将这些外部文件复制到 dist 文件夹中,确保它们和 .exe 文件在同一级目录。

更专业的方法:使用 --add-data (Windows) 或 --add-files (macOS/Linux) 参数。

例如,你的脚本需要一个 images 文件夹和一个 config.json 文件:

# Windows 上使用分号 ; 分隔源和目标
pyinstaller -F --add-data "images;images" --add-data "config.json;." my.py

这个命令会把 images 文件夹和 config.json 文件一起打包,并在运行时解压到 .exe 所在的临时目录中,你的代码可以通过 sys._MEIPASS 路径来访问它们。

3. 如何给你的 .exe 文件添加一个自定义图标?

使用 -i 或 --icon 参数。

pyinstaller -F -i my.ico my.py

my.ico 是你的图标文件名,它需要和你的 .py 文件在同一目录下,或者提供完整路径。

 
全部回复(0)
首页 | 电脑版 |