pyqt程序发布

最近用python开发了一个基于smartQQ的多QQ登录工具,需要打包发布。折腾了一天总算是用pyinstall搞好了。官方的教程说的很详细,这里主要说一说会遇到的坑。 主要步骤其实就是三步

  • 生成spec文件
  • 修改spec配置
  • 打包

以下是具体的说明:

  1. pyinstaller的安装 pip install pyinstaller就行了,但是在windows下是需要安装pywin32的。此外,还需要编译器mingw或者是visual studio都行。
  2. 源代码的结构 单文件或者多文件都行,pyinstaller的做法是不管你有什么在里面全部都给你放进去,说明在这里
  3. spec文件 直接用cmd切换目录到源代码的根目录下,运行一下pyi-makespec [主文件].py。注意这里的主文件指的是程序的入口,如果你是pyqt的程序一般都有一个启动主要界面的源文件。运行这个命令能够在当前文件下生成[主文件].spec文件。
  4. 修改spec文件 这个spec文件可以控制程序发布的内容,这里提一下一些常用的。 第一个是库依赖的问题,直接使用pyi-makespec生成的spec文件能够成功打包,但是会提示six找不到,以下是手动修改hiddenimports选项。
hiddenimports=['six','packaging', 'packaging.version', 'packaging.specifiers'],

第二个是icon的指定,这里需要说明一下。程序icon的显示其实出现在两个地方一个是程序界面的左上角那里,还有一个是程序在任务栏里面显示的图标。前者是在pyqt源代码里面指定的,而后者需要自己在exe = EXE()里面指定,新增加一个icon字段,指向ico的路径就行。 第三个是文件的收集,为了使pyinstaller收集当前目录下的全部文件需要指定收集的路径,方法是在Collect中的exe参数后面增加一个参数Tree("源代码根目录")。

coll = COLLECT(exe, Tree("path/to/source"),
    a.binaries,
    ....
)

第四个是终端的启动问题,默认的spec会使程序在运行的时候打开一个终端,这个可以在EXE里面将console设置为0就可以了。 5. 打包pyqt程序 pyinstaller [main].spec 写了这么多,其实是想给大家安利一下pyinstaller,打包起来很简单,赶紧试试吧。

转载于:https://my.oschina.net/u/1589096/blog/754536

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值