文档章节

py2exe打包pyqt程序

itfanr
 itfanr
发布于 2014/12/20 18:24
字数 685
阅读 112
收藏 0
前几天看到铂金小鸟写的 osc for PC 客户端,python和css、js、html几种语言写的windows程序,我非常感兴趣。于是自己摸索了一下windows平台下不用C++和C#写带UI的程序。

用到的软件

py2exe
py2exe is a Python Distutils extension which converts Python scripts into executable Windows programs, able to run without requiring a Python installation.
说白了,py2exe就是让那些没有安装python的用户也能执行python写的程序。它的作用就是打包python成二进制文件。至于ubuntu等系统如何打包,我就不知道了。我安装的版本是:py2exe-0.6.9.win32-py2.7.zip pyqt
PyQt is a set of Python v2 and v3 bindings for Digia's Qt application framework and runs on all platforms supported by Qt including Windows, MacOS/X and Linux. PyQt5 supports Qt v5. PyQt4 supports Qt v4 and will build against Qt v5. The bindings are implemented as a set of Python modules and contain over 620 classes.
简而言之,pyqt就是一个工具,让python也能调用qt的强大的UI库文件。

命令行界面

安装好两个工具后,先写一个hello world。 在你的工作目录下,新建一个文件名为 hello.py,内容是:
print "Hello World!"
然后在当前目录下新建一个文件名为setup.py,内容是:
from distutils.core import setup
import py2exe

setup(console=['hello.py'])#注意此处的console关键字,如果是带有UI界面的软件,那么为windows
然后在命令行中执行以下语句,配置编译环境
python setup.py install
最后执行以下语句,打包程序
python setup.py py2exe
此处如果遇到错误:
File "form1.pyc", line 11, in ?
  File "qt.pyc", line 9, in ?
  File "qt.pyc", line 7, in __load
ImportError: No module named sip
参考 http://www.py2exe.org/index.cgi/Py2exeAndPyQt,我们可以知道修改命令为:
python setup.py py2exe --includes sip
即可。当然文中也提到了其他方法。 你会发现当前目录下多了build和dist文件夹,cd到dist文件夹,然后hello.exe即可看到令人激动的"Hello World!"了。切忌不要直接点击hello.exe执行,以为会一闪而过,啥也没有。而且即使程序错了,你也不知道,我也帮不了你了。。。

漂亮的UI界面

在你的程序目录下,新建一个文件,名为windows.py:
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
app = QtGui.QApplication(sys.argv)

widget = QtGui.QWidget()
widget.resize(250, 150)
widget.setWindowTitle('windows UI')
widget.show()

sys.exit(app.exec_())
至于为什么这样写,详细解析见: http://jimmykuu.sinaapp.com/static/PyQt4_Tutorial/html/first_programs.html 把setup.py改为
import py2exe
import sys

from distutils.core import setup

setup(windows=['windows.py'])#看清楚了此处是windows,如果为console,你会看到难看的命令行界面在UI的后面。。。
然后分别执行
python setup.py py2exe
python setup.py py2exe --includes sip
参考: [1].  http://git.oschina.net/fantsme/oschina-for-pc [2].  http://www.riverbankcomputing.co.uk/software/pyqt/intro [3].  http://jimmykuu.sinaapp.com/static/PyQt4_Tutorial/html/index.html [4] . http://www.py2exe.org/index.cgi/Tutorial [5] http://www.pythoner.com/111.html#comment-2460

© 著作权归作者所有

共有 人打赏支持
itfanr
粉丝 114
博文 467
码字总数 165540
作品 1
济南
程序员
私信 提问
pyqt开发-搭建环境和开发示例

安装 安装包 要对应python的版本 32位安装包(我PC上) http://jaist.dl.sourceforge.net/project/pyqt/PyQt4/PyQt-4.11.2/PyQt4-4.11.2-gpl-Py2.7-Qt4.8.6-x32.exe 或 64位安装包 http://jai......

深蓝苹果
2014/11/12
0
0
python界面开发--pyqt 小用

为了做一个py程序的小界面,花了一天时间整了一个pyqt,真心曲折啊 依赖 * pyqt python的UI支持 * eric5 其下的qt designer才是本次的正主,而且只方便画UI,要加操作还不靠谱,只能另外写代...

深蓝苹果
2014/10/28
0
4
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 4.10 发布,支持 QT 5.0

PyQt 4.10 发布了,该版本最主要的目的是为了支持 Qt 5.0. PyQt是Qt库的Python版本。PyQt3支持Qt1到Qt3。 PyQt4支持Qt4。它的首次发布也是在1998年,但是当时它叫 PyKDE,因为开始的时候SIP...

oschina
2013/03/04
2.5K
5
PyQt 4.9.5 发布,Qt 库的 Python 版本

PyQt 4.9.5 支持 Qt 4.8.3 和 5.0.0 Beta1. PyQt是Qt库的Python版本。PyQt3支持Qt1到Qt3。 PyQt4支持Qt4。它的首次发布也是在1998年,但是当时它叫 PyKDE,因为开始的时候SIP和PyQt没有分开。...

oschina
2012/10/01
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

Java单例模式学习记录

在项目开发中经常能遇见的设计模式就是单例模式了,而实现的方式最常见的有两种:饿汉和饱汉(懒汉)。由于日常接触较多而研究的不够深入,导致面试的时候被询问到后有点没底,这里记录一下学习...

JerryLin123
昨天
3
0
VSCODE 无法调试

VSCODE 无法调试 可以运行 可能的原因: GCC 的参数忘了加 -g

shzwork
昨天
4
0
理解去中心化 稳定币 DAI

随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器。 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机制,真的有一点复杂。耐心看完...

Tiny熊
昨天
4
0
5.线程实现

用于线程实现的Python模块 Python线程有时称为轻量级进程,因为线程比进程占用的内存少得多。 线程允许一次执行多个任务。 在Python中,以下两个模块在一个程序中实现线程 - _thread 模块 th...

Eappo_Geng
昨天
6
0
ServiceLoader

创建一个接口文件在resources资源目录下创建META-INF/services文件夹在services文件夹中创建文件,以接口全名命名创建接口实现类 内容me.zzp.ar.d.PostgreSQLDialectme.zzp.ar.d.Hype...

Cobbage
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部