打完收工!

作者分享了从使用DotNet进行前端展示工作转回C++和Linux开发的感受。尽管DotNet提供了高效的编程体验,但作者更偏爱能够直接控制底层资源的语言。

啊,今天的工作完成了,可以收工了。

明天的任务又用回我亲爱的c++和linux了,真爽。做了2周的前台展示,编程编得有点想吐了。DotNet编程效率确实是高,但是不自己管理内存总感觉隔靴搔痒,不爽。呵呵。但是我申明:我绝对不是诋毁DotNet,DotNet是好东西,做前台展示没有比他更方便的工具了(个人意见)。

明天要给一个同事值班,据说会比较无聊。。。。。。

要将 Python 程序(如我们上面的二十四节气 GUI 应用)**打包成一个独立的 `.exe` 可执行文件**,让用户在没有安装 Python 的 Windows 电脑上也能直接运行,我们可以使用非常流行的工具:`PyInstaller`。 --- ### ✅ 目标 将你的 `solar_terms_app.py` 打包为: ```bash solar_terms_app.exe ``` 用户双击即可运行,无需安装 Python、tkinter 或任何依赖! --- ## 🔧 步骤一:准备工作 ### 1. 安装 `pyinstaller` 打开终端(命令提示符或 PowerShell),运行: ```bash pip install pyinstaller ``` > ✅ 确保你已经安装了 `pip` 和 Python,并且能正常运行你的脚本。 --- ### 2. 确保程序可以本地运行 先测试一下你的脚本是否能在本地运行: ```bash python solar_terms_app.py ``` 如果弹窗正常显示 → 继续下一步。 --- ## 📁 步骤二:准备项目结构(建议) 假设你的文件结构如下: ``` project/ │ ├── solar_terms_app.py ← 主程序 └── icon.ico ← (可选)自定义图标 ``` > 💡 提示:`.ico` 图标可以让生成的 exe 更美观。你可以从 [https://www.flaticon.com](https://www.flaticon.com) 下载一个并转为 `.ico` 格式。 --- ## 🛠️ 步骤三:使用 PyInstaller 打包 ### 基础命令(快速打包) 在 `project/` 目录下打开终端,运行: ```bash pyinstaller --onefile solar_terms_app.py ``` 这会做以下事情: - 将所有代码和依赖(包括 Python 解释器、tkinter 等)打包进 **单个 exe 文件**; - 输出路径默认是 `dist/solar_terms_app.exe`; - 中间生成的 `build/` 文件夹可以删除。 > ⏱️ 第一次打包可能需要几分钟,因为它要收集所有依赖。 --- ### 推荐增强命令(更专业) ```bash pyinstaller --onefile ^ --windowed ^ --name "二十四节气" ^ --icon=icon.ico ^ solar_terms_app.py ``` #### 参数说明: | 参数 | 作用 | |------|------| | `--onefile` | 打包成一个单独的 `.exe` 文件(便于分发) | | `--windowed` | 不弹出黑色控制台窗口(适合 GUI 程序)⚠️ 必加!否则会有黑框 | | `--name` | 设置生成的 exe 名称(支持中文) | | `--icon` | 添加自定义图标(必须是 `.ico` 格式) | > 💡 如果你不加 `--windowed`,运行时会出现一个多余的 CMD 黑窗。 --- ## 🎯 成果 打包完成后,在 `dist/` 文件夹中你会看到: ``` dist/ └── 二十四节气.exe ← 双击即可运行! ``` 把这个文件发给任何人,他们都可以在 **Windows 上直接运行**,即使没装 Python! --- ## 📦 注意事项 & 技巧 ### ✅ 支持的功能 - `tkinter` GUI ✔️ - 中文文本显示 ✔️ - 字体(微软雅黑、楷体等系统字体)✔️ - 内置数据(列表、字符串)✔️ ### ❌ 不自动包含的内容 - 外部资源文件(图片、音频、配置文件等) → 需要用 `--add-data` 手动添加(见下文扩展) 例如你有背景图 `bg.png`,需要用: ```bash pyinstaller --onefile --windowed --add-data "bg.png;." solar_terms_app.py ``` 然后在代码中动态获取路径: ```python import sys import os def resource_path(relative_path): """ 获取资源的正确路径(用于 PyInstaller 打包后) """ try: base_path = sys._MEIPASS # PyInstaller 临时文件夹 except Exception: base_path = os.path.abspath(".") return os.path.join(base_path, relative_path) # 使用方式: image_path = resource_path("bg.png") ``` --- ## 🚫 常见问题与解决 | 问题 | 原因 | 解决方法 | |------|------|----------| | 运行时报错找不到模块 | 某些隐式导入未识别 | 加 `--hidden-import=tkinter` | | exe 启动闪退 | 缺少 `--windowed` 或异常退出 | 先去掉 `--windowed` 调试看报错 | | 文件太大(~10MB~20MB) | 包含完整 Python 解释器 | 正常现象,无法避免 | | 杀毒软件误报 | 某些打包行为类似病毒 | 添加白名单或签名 | --- ## 📦(可选)压缩体积技巧 虽然不能完全避免大文件,但可以尝试: - 使用 `UPX` 压缩(需下载 UPX 工具): ```bash pyinstaller --onefile --upx-dir=/path/to/upx ... ``` - 移除不必要的库(比如不用 numpy/pandas) --- ## ✅ 总结:一键打包命令模板 ```bash pyinstaller --onefile --windowed --name "二十四节气" --icon=icon.ico solar_terms_app.py ``` ✅ 打完收工!你现在拥有了一个绿色、免安装、跨电脑运行的中国文化教育小工具! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值