Python打包成exe(windows)或者app(mac)

一、问题版本

为了避免版本不一问题,想要肯定成功的可以按照我的版本来

我的python版本为3.8.1

安装的pyinstaller为4.5.1

二、windows安装

先卸载旧的,如果从没安装过可以省略

bash 复制代码
pip uninstall pyinstaller -y

然后安装4.5.1,并且为避免出现下载连接超时指定镜像

bash 复制代码
pip install pyinstaller==4.5.1 -i https://pypi.doubanio.com/simple/

然后进入你写好的python文件的文件夹中,打开命令行窗口

bash 复制代码
pyinstaller -F -w -i app_icon.ico --add-binary "D:\python\DLLs\tcl86t.dll;." --add-binary "D:\python\DLLs\tk86t.dll;." tosolist.py

解释:

  • -F:打包成 单个 .exe 文件(所有依赖都整合到一个文件里,方便携带);

  • -w:打包成 无控制台窗口 的程序(打开 .exe 时不会弹出黑框,符合 "窗口版" 需求);

  • -i app_icon.ico:设置图标(也可以先删掉,等打包完成之后再设定图标也可以);

  • --add-binary "D:\python\DLLs\tcl86t.dll;." --add-binary "D:\python\DLLs\tk86t.dll;."

    这部分是指定你的python中的dll文件,避免出现未知错误,如果不写也能成功那更好。

    如果要写,那么请将路径更换成你自己的路径。如果找不到,那就在控制台输入

    where python

  • tosolist.py 这个就是你要打包的python文件名称

到这步就完成了,双击dist文件夹中的exe文件就行了。你也可以发送快捷方式到桌面。

三、mac安装

大致逻辑相同

bash 复制代码
# 先升级 pip(避免旧版本报错)
python3 -m pip install --upgrade pip -i https://pypi.doubanio.com/simple/

# 安装 PyInstaller(无需指定版本,默认会装兼容当前 Python 的稳定版)
python3 -m pip install pyinstaller -i https://pypi.doubanio.com/simple/

然后进入到对应文件夹下

bash 复制代码
#输入以下命令,回车开始打包(针对 Tkinter 程序优化,避免 macOS 下的依赖缺失):
pyinstaller -F -w --add-binary "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/lib-dynload/_tkinter.cpython-38-darwin.so:." --add-data "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter:tkinter" password_manager_gui_fixed.py
命令参数解释( macOS 重点!):
参数 作用
-F 打包成「单个文件」(最终会生成 .app 应用,而非零散文件)
-w 无控制台窗口(打开 .app 时不弹出终端黑框,符合窗口版需求)
--add-binary "xxx:." 强制添加 macOS 版 Tkinter 的核心动态库(_tkinter.cpython-38-darwin.so),避免 "找不到 Tkinter" 错误
--add-data "xxx:tkinter" 复制 Tkinter 的依赖文件到打包目录,确保窗口控件正常显示
password_manager_gui_fixed.py 你的 Python 脚本文件名(必须和实际一致)
路径注意事项:
  • 上述命令中的 3.8 对应 Python 3.8 版本,若你的 Python 是 3.9,需将路径中的 3.8 改成 3.9(比如 /Library/Frameworks/Python.framework/Versions/3.9/...);
  • 若不知道 Tkinter 依赖的具体路径,可在终端输入以下命令查询,然后替换到打包命令中:
复制代码
  # 查找 _tkinter 动态库路径
  find /Library/Frameworks/Python.framework -name "_tkinter.cpython-*.so"
  # 查找 tkinter 依赖文件夹路径
  find /Library/Frameworks/Python.framework -name "tkinter" -type d

然后依然在dist文件夹中使用app文件就可以了

相关推荐
dr_yingli18 小时前
fMRI(3-1)报告(个体化报告)生成器说明
开发语言·matlab
hrhcode18 小时前
【java工程师快速上手go】一.Go语言基础
java·开发语言·golang
l1t18 小时前
用wsl自带的python 3.10下载适用于3.12的pandas版本结合uv安装python 3.12模拟离线安装场景
python·pandas·uv
飞Link18 小时前
【AI大模型实战】万字长文肝透大语言模型(LLM):从底层原理解析到企业级Python项目落地
开发语言·人工智能·python·语言模型·自然语言处理
妙蛙种子31118 小时前
【Java设计模式 | 创建者模式】 原型模式
java·开发语言·后端·设计模式·原型模式
翻斗包菜18 小时前
第 03 章 Python 操作 MySQL 数据库实战全解
数据库·python·mysql
LlNingyu18 小时前
Go 实现无锁环形队列:面向多生产者多消费者的高性能 MPMC 设计
开发语言·golang·队列·mpmc·数据通道
Lyyaoo.18 小时前
【JAVA基础面经】线程的状态
java·开发语言
John.Lewis18 小时前
C++进阶(8)智能指针
开发语言·c++·笔记
xcjbqd018 小时前
如何修改Oracle服务器默认的日期格式_NLS_DATE_FORMAT全局配置
jvm·数据库·python