【踩坑记录】—— app运行闪退(Mac版)

一、故事开始

2022/3/27 一个风和日丽的下午☀️☀️

近期在学做一些入门级的小项目,写了个小工具的脚本之后,想拓展一下,用PYQT5做个简单的小界面,然后分别在Windows和Mac系统下进行打包,输出应用。

Windows下的打包很顺利,并且一次就成功了。但是当我到Mac系统操作的时候,可谓是一步一个坑!我使用的是pyinstaller,在终端用打包命令 pyinstaller -w --clean main.py将项目打包成main.app,双击运行,期望的功能界面出来了,稍微操作一波,小样,这么简单吗?
图1
正当我准备来一波沉浸式体验主功能的时候,wtf ?崩溃了??心里默默做好了准备,要搞心态了!



二、问题分析

通过pyinstaller 执行命令打包完成后,生成了这些文件,主要看下,dist目录,是打包产物
图2
当我双击可执行文件main时,会出现控制台,且展示功能界面,可正常运行。
但是,双击main.app后,就会出现我上面说到的,中途闪退的问题,这次我定位到了是触发了某些事件导致的。
图3

但是由于没有控制台输出,崩溃日志又是编码过的,不接吗的话没法定位具体哪一行代码导致的问题,由于我是新手,还没研究过Python打包产物,所以就先开始了 解决问题三部曲的第一部:Google。
最后定了两个排查方向:
1、进行文件操作的时候,文件路径不对导致找不到文件;
2、print的地方去掉



三、无脑排查

实际上我优先考虑了路径问题,因为分析了通过pycharm运行或者在终端跑脚本运行,都跟app运行的目录略有不同,且执行位置的文件也不一样,所以在路径方面花了较多心思先排查,从什么相对路径换到绝对路径,在不断的无脑打印中逐渐迷失自我。。。

2 hours later~

嗯,很棒!依旧没有解决问题,不过还是有点发现,将.app 拉到终端里,使用 open xx.app打开的时候,居然不会闪退,并且我可以看得到,确确实实是路径有问题,报了一些 dictionary not found 的信息出来,很nice。

这下我直接把路径给写到一个固定的目录去,再次调试,发现再次用控制台open app的方式,已经可以完整跑完功能了,嘿嘿 那么,问题是不是解决了呢,直接操作一波,双击 .app 打开,怀着必胜的心态,开始了烂熟于心的操作,嗯?还是崩了,就如我的心态一般🤮🤮🤮

走投无路了,发现还有另外一个方向没排查过,死马当活马医,试试就试试,把所有print方法都给注掉了,可能是我的努力感动了上天,问题解决了!!! 呵呵呵,5分钟的事,我硬是给搞了2个钟,不过结果还是好的🤡🤡

图4



四、总结

作为一名有探索精神的初级程序🐒,解决问题是关键,但是知道问题的根源是最终目的!我必定要深究到底,为什么会这样,于是 又在Google的世界里遨游了起来~~

又是一个 2 hours later~

文章少之又少,不知道是不是我的描述有问题,竟没有找到一篇能参考的,emmm,好吧,我放弃了,只能暂时先这样,后续等我知道原因后再来补充。如果有大佬了解的话,烦请告知,感谢!

end.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值