0基础开发学习python工具_____一键打包!用 PyInstaller 将 Python 烟花程序转为 .exe(无需 Python 环境)

经过上两期的博文。感兴趣的友友应该了解了基础的python操作。例如你已经写好了绚丽的烟花程序,想发给朋友炫耀下。但朋友电脑没装 Python?别担心!借助 PyInstaller,你可以将整个 Python 脚本(包括 pygame、图片、字体等依赖)打包成一个独立的 .exe 文件,双击即运行,无需任何环境配置。

第一步:安装 PyInstaller

在终端(命令提示符 / PowerShell / Terminal)中运行:确保你已在运行烟花程序的同一个 Python 环境中(推荐使用虚拟环境)。

复制代码
pip install pyinstaller

示例:

第二步:准备好你的脚本打包exe

假设你的烟花程序文件名为:yanhua.py。并且它不依赖外部资源文件(如图片、音频),所以打包非常简单。在 yanhua.py 所在目录打开终端,运行以下命令:

复制代码
pyinstaller --onefile --windowed --name "FireworkShow" yanhua.py

示例;

参数说明:

参数 作用
--onefile 打包成单个 .exe 文件(所有依赖嵌入)
--windowed 不显示控制台窗口(适合 GUI 程序,避免黑框)
--name "FireworkShow" 指定生成的 exe 文件名为 FireworkShow.exe
yanhua.py 你的主程序文件

首次打包可能较慢(1~3 分钟),PyInstaller 会收集所有依赖并压缩。

第四步:找到生成的 .exe 文件

打包完成后,你会看到项目目录下新增了:

build/(临时构建文件,可删除)

dist/(最终产物所在目录)

进入 dist/ 文件夹,你会看到一个生成的exe文件。这个 FireworkShow.exe 就是你的独立可执行文件!

第五步:测试 与 分享

双击运行 FireworkShow.exe.应该会正常弹出黑色窗口,点击即可放烟花!

发送给朋友→ 只需把 FireworkShow.exe 发给他,无需安装 Python 或 pygame!

示例;

常见问题解决

1. 打包后闪退?

原因:可能缺少 --windowed,导致控制台一闪而过。

解决:确保加上 --windowed(因为 pygame 是图形程序,不需要命令行窗口)。

2. 程序运行但没反应?

临时去掉 --windowed,用 --console 打包看看报错:

复制代码
pyinstaller --onefile --console --name "FireworkDebug" firework_pygame.py
复制代码
然后运行 FireworkDebug.exe查看控制台输出错误信息。

3. 文件太大(100MB+)?

pygame + Python 解释器本身较大,单文件模式会压缩但仍有体积。

可接受范围内(通常 30~80MB)。若需更小体积,可考虑 --onedir(文件夹模式)或使用 upx 压缩(进阶)。

4.完整打包命令

复制代码
pyinstaller --onefile --windowed --clean --name "FireworkShow" firework_pygame.py

--clean:清理临时缓存,避免旧依赖干扰。

5.额外技巧:添加图标(可选)

如果你有 .ico 图标文件(如 firework.ico),可加上:

复制代码
pyinstaller --onefile --windowed --name "FireworkShow" --icon=firework.ico yanhua.py

这样生成的 exe 会有自定义图标,更专业!

示例;

现在,你的烟花不仅是代码,更是一份可运行的数字礼物.对于初学者的你是不是特有成就感?关注我。了解更多学习python的小技巧

相关推荐
Wang's Blog几秒前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
信誓旦旦的程序猿27 分钟前
【Python量化实战宝典 #21】北向资金跟随手册:聪明钱择时信号(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
严谨的麻辣烫42 分钟前
静态 ISP 代理请求超时怎么排查?Python 与 curl 实战
python·http·requests·1024程序员节·网络排障
下一站春风里44 分钟前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法
天外飞雨道沧桑2 小时前
我在浏览器里练了一个 792 参数的大模型,它学会了补全 JavaScript
开发语言·javascript·ai·ecmascript·ai编程
hhhjhl2 小时前
Yup 跨端三方库仓颉适配全流程
java·开发语言
运维行者_2 小时前
网络监控工具怎么选?从设备监控到智能运维的能力清单
运维·服务器·开发语言·网络·人工智能·支持向量机·php
KeepRobots2 小时前
11-01 温哥华不回拨:用 60 行 Python 查你的工单系统会不会差一小时(KeepRobots 工程笔记)
python
xiao77mwq2 小时前
你以为 OCR 慢?实测 81.3 s 里全是故障代价:如何把「定格态」消掉,让耗时从 6.5 s 到 13 倍差距显出原形
python
深圳市益普科技有限公司3 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法