文档章节

pyqt程序发布

tianhuaban
 tianhuaban
发布于 2016/10/05 10:22
字数 615
阅读 34
收藏 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
长沙
程序员
pyqt sqlite3 icu fts3 fts4 enabled 。全文搜索 功能

目标:windows下让pyqt测试程序支持sqlite3 icu fts3/4的全文搜索功能。 环境: windows XP pyqt 安装文件 PyQt-Py2.7-x86-gpl-4.9.6-1.exe pyqt 源码包 PyQt-win-gpl-4.9.4.zip python 版本...

kjpioo
2013/02/09
0
0
PyQt install for windows

Windows下PyQt4的安装 1.环境 OS: Windows 7 64bits Python: 2.7.2 2.软件下载 我们可以在http://www.riverbankcomputing.co.uk/software/pyqt/download这里,获得PyQt4的下载,请注意选择正...

Jr小王子
2015/03/23
0
2
《Rapid GUI Programming with Python and Qt》读书笔记

一些唠叨 搜索pyqt资料的时候发现了这本《Rapid GUI Programming with Python and Qt》,试读了一下觉得非常适合我这种完全初次接触qt与pyqt的新手,尽管是英文读物,但是不算太难理解,读起...

Feng_Yu
2014/06/18
0
1
用 PyQt 快速打造一个浏览器

本次课程将基于 Python 3.4 和 PyQt 5 来学习 GUI 编程。 (本教程由onemagician发布在实验楼,完整教程、代码及在线练习地址:PyQt 实现简易浏览器。更多项目请查看Python学习路径) 一、实...

实验楼
07/31
0
0
PySide集成开发环境下载安装配置

现在学习python pyside 等,边学边写呵,大侠们都不屑呵,我先写一篇 摸索了一段时间,用了不同的GUI库和集成开发环境还是这个简单 下载地址: http://www.python.org/ http://pypi.python....

zzpzf
2013/01/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Memcached启动参数详解

memcached -d -m 1024 -l 192.168.100.101 -p 11211 -P /tmp/memcached.pid -c 1024 -f 1.25 -n 80 -t 16 运行参数描述 -d:以守护(daemon)进程方式启动; -u:是运行Memcache的用户,例如 ......

月下狼
29分钟前
0
0
xgboost-kaggle

https://www.kaggle.com/dansbecker/xgboost This tutorial is part of the Learn Machine Learning series. In this step, you will learn how to build and optimize models with the powe......

tantexian
30分钟前
0
0
nginx学习八 代理服务

最常用的语法 proxy_pass Syntax: proxy_pass URL;Default: --Context:location.if in location,limit_exception 反向代理 例:/etc/nginx/conf.d/default.conf 反向代理(代理服务端)......

Romanceling
37分钟前
0
0
npm ERR! Unexpected end of JSON ...

npm install 报错: npm ERR! Unexpected end of JSON input while parsing near '..."^2.8.14"},"_hasShrin' npm ERR! A complete log of this run can be found in: ... 打开终端 命令: 第......

大_侠
41分钟前
0
0
Android中的设计模式之责任链模式

参考 《设计模式:可复用面向对象软件的基础 》5.1 Chain of responsibility 职责链 对象行为型模式 《Android源码设计模式解析与实战》第9章 使编程更有灵活性--责任链模式 意图 使多个对象...

newtrek
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部