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

 更新时间:2026年04月01日 09:11:32   作者:二王一个今  
文章主要介绍了使用pyinstaller将Python脚本打包成可执行文件的步骤,包括在Windows和macOS上的操作方法,详细解释了命令参数的作用和使用方法

一、问题版本

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

  • 我的python版本为3.8.1
  • 安装的pyinstaller为4.5.1 

二、windows安装

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

pip uninstall pyinstaller -y

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

pip install pyinstaller==4.5.1 -i https://pypi.doubanio.com/simple/

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

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安装

大致逻辑相同

# 先升级 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/

然后进入到对应文件夹下

#输入以下命令,回车开始打包(针对 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文件就可以了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 5个Python使用F-String进行格式化的实用技巧分享

    5个Python使用F-String进行格式化的实用技巧分享

    F-String(格式化字符串字面值)是在Python 3.6中引入的,它是一种非常强大且灵活的字符串格式化方法,本文总结了5个实用的F-String技巧,相信一定能让你的代码输出更加的美观,快跟随小编一起学习起来吧
    2024-03-03
  • django中模板的html自动转意方法

    django中模板的html自动转意方法

    今天小编就为大家分享一篇django中模板的html自动转意方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python读取环境变量的方法和自定义类分享

    Python读取环境变量的方法和自定义类分享

    这篇文章主要介绍了Python读取环境变量的方法和自定义类分享,本文直接给出代码实例,需要的朋友可以参考下
    2014-11-11
  • Python绘制3D立体花朵示例详解

    Python绘制3D立体花朵示例详解

    情人节送玫瑰花千篇一律?本文将为大家介绍利用Python绘制多种3D立体花朵的示例代码,让女友感受一下程序员的浪漫!快来跟随小编一起学习一下吧
    2021-12-12
  • Python微医挂号网医生数据抓取

    Python微医挂号网医生数据抓取

    今天小编就为大家分享一篇关于Python微医挂号网医生数据抓取,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 趣味Python实战练习之自动更换桌面壁纸脚本附源码

    趣味Python实战练习之自动更换桌面壁纸脚本附源码

    读万卷书不如行万里路,学的扎不扎实要通过实战才能看出来,本篇文章手把手带你编写一个自动更换桌面壁纸的脚本,代码简洁而且短,相信你一定看得懂,大家可以在过程中查缺补漏,看看自己掌握程度怎么样
    2021-10-10
  • python库pycryptodom加密技术探索(公钥加密私钥加密)

    python库pycryptodom加密技术探索(公钥加密私钥加密)

    这篇文章主要为大家介绍了python库pycryptodom加密技术探索(公钥加密私钥加密),有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • python列表倒序的几种方法(切片、reverse()、reversed())

    python列表倒序的几种方法(切片、reverse()、reversed())

    本文主要介绍了python列表倒序的几种方法(切片、reverse()、reversed()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • python实现UDP协议下的文件传输

    python实现UDP协议下的文件传输

    这篇文章主要为大家详细介绍了python实现UDP协议下的文件传输,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 利用python打印出菱形、三角形以及矩形的方法实例

    利用python打印出菱形、三角形以及矩形的方法实例

    最近在开发中遇到一个问题,需要利用python实现菱形、三角形以及矩形等形状,发现网上这方面的资料较少,所以总结分享下,这篇文章主要给大家介绍了关于利用python打印出菱形、三角形以及矩形的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08

最新评论