type
Post
status
Published
date
Mar 22, 2023
slug
summary
py2app,pyinstaller
tags
python
category
探索新世界
icon
password

引子

前段时间用python写了一个小工具,来方便一些日常的重复性工作。
使用pyside6,所以拥有了一个图形化的界面。
但是每次使用之前相对来说都比较麻烦,要不就是在编辑器里面运行,或者也要在命令行中输入命令。
所以我想打包成一个可执行的文件,变成一个软件,即点即用。

pyinstaller

这是最多人推荐的一个打包工具,包括我在之前看到的一个pyside的教程上也推荐用这个工具打包。
当我填入参数打包之后,并不能正常的启动程序,原因是缺少一些什么组件。
教程上面说,pyinstaller不能识别一些动态导入的文件,于是我把main.ui 也就是pyside的特性文件直接放进了软件包,但依然不能使用。
后来有陆陆续续折腾了一下,无一例外,都打不开。

py2app

这个好像是专门在mac上进行使用的,我参考了知乎上的一篇文章,讲的很清楚。
前期的准备工作都差不多,只是py2app需要先生成一个setup.py 文件。我们可以在这个文件中进行一定的设置,比如填写自己使用了什么包,或者是app的icon之类的。最后再运行一条命令就可以打包了。
不加-A 就是类似于全量打包的意思,所有的依赖跟库都会全部放在软件包里面,可以直接发给别人使用。如果加上-A 参数的话,那么实际上就类似于一个快捷方式,发给别人使用的话,别人还需要安装相应的环境,只是自己使用方便一点。
py2app让我看到了成功的曙光。虽然说不加-A 参数没法使用,总是缺少什么依赖。但是加上这个参数之后,总算是可以把软件的界面给打开了。
虽然说界面可以顺利的打开,但是里面的按钮却没有任何的响应。我按照提示从终端进行启动,提示缺少相应的库。我估摸着这是pycharm的原因,pycharm安装库的时候跟我在命令行下安装,不是一个地方。我也搞不清楚是为什么,明明我只有一个python版本,可能是因为我没有搞清楚什么叫做解释器。。。不过问题不大,我重新在命令行下把缺少的安装了一遍,总算是把所有的功能都跑起来了。

急转直下

我本来以为到这里已经搞好了,以上的操作都是我在桌面上完成的。因为怕影响本来的代码,所以复制了一份在桌面。
第二天起来等我把桌面的文件删掉之后,那个程序安装包都无法打开了。我意识到,是因为我的打包方式的问题,所以这个源文件不能删除。
于是我重新回到我代码本来的位置,然后重新之前的操作。接下来事态开始非常诡异了,我仍然是可以打开界面,但是第一个功能没办法使用。这个功能跟pd转换成Image图像有关系。我对代码进行了很多的调整,但是最终结果还是,这里一块功能没办法使用,而其他模块完全不受影响。
接着我尝试着试了一下anconda,在虚拟环境下操作。折腾了半天,也是不行,头都大了。我已经彻底心态崩溃。
 
算了,爱谁谁,我不想搞了
「2023年-3月」jsonpath取notion数据