PyQt5环境搭建及cx_freeze打包exe

Python的图形库也有好几个,Qt文档和使用面还是要广一些。

打包成可执行文件的也有好几个,PyInstaller用的比较多,但是PyInstaller目前还不支持Python3.6(开发版支持3.6,但是我测试我的项目,打包出来的exe执行结果有问题)。

于是就选择了PyQt+cx_freeze。

安装PyQt5和cx_freeze用pip命令即可安装,非常方便。

pip install PyQt5

pip install cx_freeze

安装完毕后,测试一下:

新建hello.py

内容如下

#!/usr/bin/python3
# -*- coding: utf-8 -*- import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon if __name__ == '__main__':
app = QApplication(sys.argv) w = QWidget()
icon = QIcon("icon.png")
w.setWindowIcon(icon)
w.resize(400, 300)
w.move(400, 300)
w.setWindowTitle('hello world')
w.show() sys.exit(app.exec())

说明:

  • 开一个Qt的窗口,并将icon.png作为它的icon,这个icon也会显示在windows的任务栏上
  • 调整窗口的大小到400x300,也移动到400,300处
  • 将窗口的标题指定为"hello world"

使用python hello.py命令,看到下面的图形界面,证明PyQt安装正常

PyQt5环境搭建及cx_freeze打包exe

下面就是将这个hello.py打包成可执行文件了。

打包exe文件

新建setup.py,内容如下

from cx_Freeze import setup, Executable
import sys
base = 'WIN32GUI' if sys.platform == "win32" else None executables = [Executable("hello.py", base=base, icon='icon.ico')] packages = []
include_files=['icon.png']
options = {
'build_exe': {
'packages':packages,
'include_files': include_files
}, } setup(
name = "prog",
options = options,
version = "1.0",
description = 'desc of program',
executables = executables
)

说明:

  • executable内的hello.py就是要打包的python脚本,icon就是这个exe的图标
  • include_files表示要打包的其他文件,我这里是有一个icon.png需要一起打包
  • setup内的name, version, description都可以自己填写,相信大家都知道这些是什么含义

在命令行转到刚刚的setup.py文件的目录,使用如下命令打包exe:

python setup.py build

打包以后,出来了一大堆,文件夹大小是179M。里面大概像这个样子,hello.exe就是打包出来的可执行文件了

PyQt5环境搭建及cx_freeze打包exe

双击exe,运行完全正常。

相关源码:Github-Syler-Fun-PyQt-cx_freeze

上一篇:table显示json数据传递


下一篇:jQuery UI resizble、draggable的div包含iframe导致缩放和拖拽的不平滑解决方法