mac下使用Pyinstaller打包程序遇到的问题总结

打开app程序闪退,定位问题

运行pyinstaller -F -w **.py生成的app文件,会闪退,此时可以运行与app同名的文件夹里的同名Unix可执行文件,这样可以在命令行里看到程序的输出。
类似下图:
在这里插入图片描述

闪退的原因是查找不到图片文件

在网上查询之后,有个比较简单的实现方法

def resource_path(relative_path):
    if getattr(sys, 'frozen', False):      # 是否Bundle Resource
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

代码中引用图片的路径是经过上面函数转换后的路径,例如设置窗口标题icon
在这里插入图片描述
然后使用命令打包时添加–add-data参数(左边是你要添加的filename(相对路径即可),右边是拷贝到项目中之后的名字。windows使用分号;分割,macOS或Linux使用:分隔,后面使用.表示使用原文件名)
mac示例:

pyinstaller -w --add-data fur.png:. --add-data snow.png:. GUI.py

还发现一个问题,打包参数中不能使用-F,运行使用-F打出来的app程序会闪退,使用-D则不会(即使你删除了disk里的与app同名的文件夹,运行app也是可以成功的)。原因不知。

mac应用程序设置图标

同样是通过-i参数指定图标不过,macos和Windows不一样的是,macos使用icns格式的文件,Windows使用ico格式的文件。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值