PyQT5使用pyinstaller打包Mac应用


1、引言

  由于项目需要在推广时需要往各个渠道投放,就需要打出包含不同渠道的sdk!由于渠道众多,手动实在影响效率,动辄需要几十个包,使用androidstudio手动打包实在费时间,这里我们使用pyQt5写了一个打包工具,支持批量打包!由于平时在mac上开发,这里就需要导出Mac的独立程序。一番查找还是使用PyInstaller。事实上,PyQT5 封装独立程序,方法不止一种,这里优先推荐 PyInstaller,而非 py2app 或者 py2exe。
  这是因为 py2app 等不会将程序环境(如 python 的 frameworks 等)打包进去,因此并不会封装为一个独立的软件(standalone app),具体表现为仅能在本机正常运行,在别人的电脑上运行会报错。然而 pyinstaller 则封装完整,可在同系统的不同机器上运行。事实上,PyInstaller 封装 Windows 端的 exe 文件也是不错的选择。

2、准备

  • Python3环境
  • Python工具包
 pip3 install pyinstaller

3、封装步骤

  在终端中cd 到项目路径,也就是main函数所在文件main.py, 切换完成后依次输入下面命令:

sudo pyinstaller --windowed --onefile --clean --noconfirm main.py
sudo pyinstaller --clean --noconfirm --windowed --onefile main.spec

其中:

  • sudo 表示获取权限,可能要求输入密码
  • 这里的第一条指令表示使用默认的配置,打出来的包的图标是默认的。如果想要打出的包使用自己的图标,第一条命令替换为:
sudo pyinstaller --windowed --onefile --icon=icon.icns --clean --noconfirm main.py

  这里使用了在main.py所在路径下的名为icon.icns的图片。不同的操作系统要使用的图片格式也是不同的Mac为*.icns格式,而 windows 系统下的图片格式应为 .ico,可以使用ICONVERT ICONS转换工具进行相应格式的转换,非常方便。
  另外这里导出的文件(在dist目录)名为 main,这是一个默认名字。这不是我们所期望的,这里只需要增加一个可选参数就可以导出我们期望的名字,相关的设置可以点此参考官网,也可以自行查找相关pyinstaller参数介绍以及总结,总之为了方便还是推荐改下名字:

sudo pyinstaller --windowed --onefile --icon=icon.icns --clean --noconfirm main.py --name fishTool
sudo pyinstaller --clean --noconfirm --windowed --onefile fishTool.spec

在这里插入图片描述
在这里插入图片描述
  到这里我们就生成我们心仪的.app文件,可以在显示简介里看到他的属性,运行一下可以在terminal中看到运行日志了。

4、注意事项

  一般我们很少一次性能导出成功,主要是一些包导入问题和项目文件配置路径。

  • eg:获取包路径的父路径,不可将路径写成绝对路径。
  • eg:打包后应用运行后比较模糊,可以在显示包内容中修改Contents/Info.plist文件,添加如下内容,开启高清解决方案:
<key>NSHighResolutionCapable</key>
	<string>True</string>

在这里插入图片描述

5、结束语


The End
  好了,今天的分享就到这里,如有不足之处,还望大家及时指正,随时欢迎探讨交流!!!


喜欢的朋友们,请收藏、点赞、评论!您的肯定是我写作的不竭动力!

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

对酒当歌﹏✍

您的鼓励是我写作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值