文档章节

pyqt程序发布

tianhuaban
 tianhuaban
发布于 2016/10/05 10:22
字数 615
阅读 25
收藏 0
点赞 0
评论 0

最近用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,打包起来很简单,赶紧试试吧。

© 著作权归作者所有

共有 人打赏支持
tianhuaban
粉丝 1
博文 6
码字总数 4712
作品 0
长沙
程序员
PyQT5速成教程-1 简介与环境搭建

PyQt简介 一个良好的界面是人机交互中十分重要的一环。 Python作为脚本语言,起初并未拥有GUI开发的部分。但随着其开放的扩展性,使得Python不断壮大,有PyQt、Tkinter,PyGUI等GUI Toolkit...

养薛定谔的猫 ⋅ 06/02 ⋅ 0

图片标注工具LabelImg下载安装使用教程

链接:https://blog.csdn.net/jessemx/article/details/53606897 labelimg软件是一款免费的图像标注工具,可方便创建自己的数据集,方便进行深度学习训练,该工具运行环境为python+ lxml,F...

m0_38139979 ⋅ 04/16 ⋅ 0

Eric:Python的IDE之eric的简介、安装、使用方法之详细攻略——Jason Niu

Eric的简介 Eric是一个完整的Python编辑器和IDE,用Python编写。它是基于跨平台QT-UI工具包,集成了高度灵活的闪烁编辑器控件。它被设计成可用作为“每日”的快速和肮脏的编辑器,以及作为一...

qq_41185868 ⋅ 05/24 ⋅ 0

Python想从外部调用pyqt生成的一个类(Dialog)的一个控件

现在,写了一个界面程序,但是我其他的程序(.py)中有个是后台输出,现在,我想把后台输出的内容填写进入pyqt的一个控件testEdit中。但是每次都是说没有找到这个控件'QDialog' object has no...

Int_Crazy ⋅ 06/12 ⋅ 0

pyqt 自定义QTableView的Delegate后QFileDialog显示错误

PyQt项目,窗口中有一个QTableView,自定义Delegate显示数据后发现QFileDialog弹出框出错,显示内容为后面背景的截图。 class CustomDelegate(QItemDelegate): def paint(self, painter, op...

风淋天下 ⋅ 06/02 ⋅ 0

在高通410c开发板使用PyQt开发电动窗帘Demo(四)

本文继续介绍在高通410c开发板上开发电动窗帘Demo的开发步骤 使用QtDesigner开发UI 7. 任务列表操作 创建Push Button控件到主窗体中,作为添加任务列表按钮,设置如下: 创建Push Button控件...

conglf ⋅ 05/11 ⋅ 0

python开源工具列表【持续更新】

以下是个人在工作中整理的一些python wheel,供参考。 这个列表包含与网页抓取和数据处理的Python库 网络 通用urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库(基于pycurl)。...

武耀文 ⋅ 04/25 ⋅ 0

Pyqt/Qt信号与槽的理解(一)

信号与槽有三种使用方法:内置信号与槽,自定义信号与槽和装饰器的信号与槽。 内置信号与槽 内置信号与槽是指在发射信号时,使用窗口控件的函数,而不是自定义的函数,可通过将一个的信号连接...

zhangziju ⋅ 05/09 ⋅ 0

大数据分析挖掘学习方向?数据分析师的就业前景怎么样?

加米谷数据分析挖掘课程明细,从理论到云端实操环境到项目实战,手把手教您从0掌握数据分析与挖掘技术,带您走进数据时代。 第一阶段(python基础) python入门:1、Python版本特性介绍2、P...

加米谷大数据 ⋅ 04/17 ⋅ 0

PyQT5速成教程-4 Qt Designer实战[上]

前言 在前面几节的学习中,我们对PyQt的基本使用、Qt Designer与Python编码的工作流程有了基本的学习。同时也掌握了Qt Designer中的布局方式和使用Python代码来实现布局。 让我们在下面的时间...

养薛定谔的猫 ⋅ 06/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部