引子

前段时间用python写了一个小工具,来方便一些日常的重复性工作。

使用pyside6,所以拥有了一个图形化的界面。

但是每次使用之前相对来说都比较麻烦,要不就是在编辑器里面运行,或者也要在命令行中输入命令。

所以我想打包成一个可执行的文件,变成一个软件,即点即用。

pyinstaller

这是最多人推荐的一个打包工具,包括我在之前看到的一个pyside的教程上也推荐用这个工具打包。

当我填入参数打包之后,并不能正常的启动程序,原因是缺少一些什么组件。

教程上面说,pyinstaller不能识别一些动态导入的文件,于是我把main.ui 也就是pyside的特性文件直接放进了软件包,但依然不能使用。

后来有陆陆续续折腾了一下,无一例外,都打不开。

py2app

这个好像是专门在mac上进行使用的,我参考了知乎上的一篇文章,讲的很清楚。

用 py2app 将 Python 脚本打包成 Mac OS 下的 APP 程序

前期的准备工作都差不多,只是py2app需要先生成一个setup.py 文件。我们可以在这个文件中进行一定的设置,比如填写自己使用了什么包,或者是app的icon之类的。最后再运行一条命令就可以打包了。

不加-A 就是类似于全量打包的意思,所有的依赖跟库都会全部放在软件包里面,可以直接发给别人使用。如果加上-A 参数的话,那么实际上就类似于一个快捷方式,发给别人使用的话,别人还需要安装相应的环境,只是自己使用方便一点。

py2app让我看到了成功的曙光。虽然说不加-A 参数没法使用,总是缺少什么依赖。但是加上这个参数之后,总算是可以把软件的界面给打开了。

虽然说界面可以顺利的打开,但是里面的按钮却没有任何的响应。我按照提示从终端进行启动,提示缺少相应的库。我估摸着这是pycharm的原因,pycharm安装库的时候跟我在命令行下安装,不是一个地方。我也搞不清楚是为什么,明明我只有一个python版本,可能是因为我没有搞清楚什么叫做解释器。。。不过问题不大,我重新在命令行下把缺少的安装了一遍,总算是把所有的功能都跑起来了。

急转直下

我本来以为到这里已经搞好了,以上的操作都是我在桌面上完成的。因为怕影响本来的代码,所以复制了一份在桌面。

第二天起来等我把桌面的文件删掉之后,那个程序安装包都无法打开了。我意识到,是因为我的打包方式的问题,所以这个源文件不能删除。

于是我重新回到我代码本来的位置,然后重新之前的操作。接下来事态开始非常诡异了,我仍然是可以打开界面,但是第一个功能没办法使用。这个功能跟pd转换成Image图像有关系。我对代码进行了很多的调整,但是最终结果还是,这里一块功能没办法使用,而其他模块完全不受影响。

接着我尝试着试了一下anconda,在虚拟环境下操作。折腾了半天,也是不行,头都大了。我已经彻底心态崩溃。

算了,爱谁谁,我不想搞了

最后修改:2023 年 03 月 22 日
如果觉得我的文章对你有用,请随意赞赏