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安装正常

1067696-20170612165723775-1183886332.png

下面就是将这个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就是打包出来的可执行文件了

1067696-20170612165713884-241162677.png

双击exe,运行完全正常。
相关源码:Github-Syler-Fun-PyQt-cx_freeze

转载于:https://www.cnblogs.com/asis/p/pyqt5-cx_freeze.html

使用cx_freeze可以将PyQt5程序打包为可执行文件,使其在没有Python环境的机器上也能运行。 首先,确保已经安装了cx_freeze库。可以通过pip命令进行安装,如:pip install cx_Freeze。 然后在PyQt5的程序文件所在目录下,创建一个名为setup.py的脚本文件。 在setup.py文件中,需要导入cx_Freeze的一些模块,如: ```python from cx_Freeze import setup, Executable ``` 接下来,需要定义一些程序的信息,例如程序的名称、版本号、作者等等。同时,还需要指定要打包PyQt5程序的入口文件,如: ```python exe = Executable( script="main.py", base="Win32GUI", # 使用Windows的图形界面 icon="icon.ico" # 可选,设置程序的图标 ) ``` 再然后,可以定义一些打包的选项,例如需要排除的模块、包含的文件等等。例如: ```python options = { "build_exe": { "packages": ["pyqt5", "sys"], "excludes": ["tkinter"], "include_files": ["resources/"] # 将资源文件夹一同打包 } } ``` 最后,在setup函数中,指定一些打包的参数,例如程序的名称、版本号、作者等等。同时,还需要指定要打包的文件及其依赖项,如: ```python setup( name="MyApp", version="1.0", author="My Name", description="My PyQt5 app", executables=[exe], options=options ) ``` 保存并关闭setup.py文件。 在命令行中,切换到setup.py所在的目录,并执行以下命令: ```python python setup.py build ``` 执行完毕后,在build目录中会生成一个可执行文件,就是我们打包好的PyQt5程序。 需要注意的是,由于打包时会将PyQt5库及其依赖项一同打包,所以打包后的文件可能会比较大。如有需要,可以使用upx等压缩工具进行进一步压缩。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值