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

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

双击exe,运行完全正常。

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

PyQt5环境搭建及cx_freeze打包exe的更多相关文章

  1. [ PyQt入门教程 ] PyQt5环境搭建和配置

    PyQt入门系列教程主要目的是希望通过该系列课程学习,可以使用PyQt5工具快速实现简单的界面开发,包括界面设计.布局管理以及业务逻辑实现(信号与槽).简单说就是可以使用PyQt5工具快速画一个控件摆 ...

  2. Android环境搭建及Ionic打包(win7)

    本人刚刚接触Ionic3,初步进行打包操作,将其遇到的问题和整个流程记录下载,方便以后的巩固,也为小白们提供一个参考.因本人没有appleヽ(ー_ー)ノ,而且使用的是WIN7系统,所以暂时只提供了WI ...

  3. Python3+Pycharm+PyQt5环境搭建

    操作系统:Windows 10 Python版本:3.7及以上版本均可 PyCharm:PyCharm 2019.3 1.安装 PyQt5 及其拓展工具. pip install pyqt5 pip ...

  4. Python3+Pycharm+PyQt5环境搭建步骤

    搭建环境: 操作系统:Win10 64bit Python版本:3.7 Pycharm:社区免费版 一.Python3.7安装 下载链接:官网 https://www.python.org/downl ...

  5. Mac Python PyQt5 环境搭建

    pip install pyqt5 测试开发环境 在Terminal里敲下以下代码,如果没有报错就说明安装成功了. python -c "import PyQt5" 或是如下图,导 ...

  6. cx_freeze打包EXE文件

    创建setup.py文件 import osimport sysfrom cx_Freeze import setup, Executable build_exe_options = dict(pac ...

  7. Python3 GUI:PyQt5环境搭建

    配置镜像源 最近用Python内置的Thinter写了个小工具,发现界面略朴素,于是决定转向PyQt5.先配置镜像源,否则只能龟速下载. C:\Users\你的用户名下新建目录pip 在pip目录下新 ...

  8. PyQT5速成教程-1 简介与环境搭建

    本文由 沈庆阳 所有,转载请与作者取得联系! PyQt简介 一个良好的界面是人机交互中十分重要的一环. Python作为脚本语言,起初并未拥有GUI开发的部分.但随着其开放的扩展性,使得Python不 ...

  9. win7下nsis打包exe安装程序教程

    下载软件包: NSIS中文版 :https://pan.baidu.com/s/1mitSQU0 装好之后会出现两个软件:Nullsoft Install System 和 VNISEdit 编译环境 ...

随机推荐

  1. LeanCloud 调研报告

    LeanCloud 是一家做后端即服务(BaaS)的厂商,目标是让移动互联网开发者能更加方便的开发应用. 出于工作关系,对 leancloud 进行了一番调研:主要目标是学习其后端即服务的产品化思路等 ...

  2. mina.net 梳理

    LZ最近离职,闲着也是闲着,打算梳理下 公司做的是电商,CTO打算把2.0系统用java 语言开发,LZ目前不打算做java,所以 选择离职.离职前,在公司负责的最后一个项目 供应链系统. 系统分为 ...

  3. 发送验证码(××s后重新发送)

    html: <input class="tel" type="text" name="tel" placeholder="手 ...

  4. GitHub的实践

    GitHub的实践 2017-05-08,晴,来小米已经一周的时间了,感谢领导能给我一周的时间来熟悉 ubuntu.spring boot.maven.docker.github .大家会问,这些不都 ...

  5. Linux之定时任务

    定时任务Crond介绍 Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6 linux操作系统之后,默认便会启动Crond任务调 ...

  6. IOS(二)基本控件UIButton、简易动画、transform属性、UIImageView

    UIButton //1.设置UIButton 的左右移动 .center属性 获得 CGPoint 来修改x y //1.设置UIButton 的放大缩小 bounds属性 获得CGRect 然后通 ...

  7. OC中的单例

    概念 单例模式的意图是类的对象称为系统中唯一的实例,提供一个访问点,供客户类共享资源 什么情况下使用单例 )类只能由一个实例,而且必须从一个为人熟知的访问点对其进行访问,比如工厂方法 )这个唯一的实例 ...

  8. NodeJS+Express+MongoDB 简单实现数据录入及回显展示【适合新人刚接触学习】

    近期在看NodeJS相关 不得不说NodeJS+Express 进行网站开发是很不错,对于喜欢玩JS的来说真是很好的一种Web开发组合 在接触NodeJS时受平时Java或者C#中API接口等开发的思 ...

  9. java中的GC(gabage collection)如何工作

    1. “引用记数(reference counting)”是一种简单但速度很慢的垃圾回收技术.每个对象都含有一个引用记数器,当有引用连接至对象时,引用计数加1.当引用离开作用域或被置 为null时,引 ...

  10. LeetCode4. Median of Two Sorted Arrays---vector实现O(log(m+n)--- findkth

    这道题目和PAT上的1029是同一题.但是PAT1029用O(m+n)的时间复杂度(题解)就可以,这道题要求是O(log(m+n)). 这道题花费了我一个工作日的时间来思考.因为是log因而一直思考如 ...