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. rsync远程同步

    一.概念 Rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持连接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用.rsy ...

  2. 使用SSH框架查出的实体集合用AJAX形式刷新到页面JOSONArray报异常

    所报异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 问题根源:数据库中查出的日期是java.sql. ...

  3. JS模式--装饰者模式

    在Javascript中动态的给对象添加职责的方式称作装饰者模式. 下面我们通常遇到的例子: var a = function () { alert(1); };//改成: var a = funct ...

  4. Laravel 5.2 教程 - 邮件

    一.简介 Laravel 的邮件功能基于热门的 SwiftMailer 函数库之上,提供了一个简洁的 API.Laravel为SMTP.Mailgun.Mandrill.Amazon SES.PHP的 ...

  5. NancyFx 2.0的开源框架的使用-Authentication

    新建一个空的项目 新建好了空的项目以后,接着通过NuGet安装一下三个包 Nancy Nancy.Hosting.Aspnet Nancy.ViewEnglines.Razor 然后在项目中添加Mod ...

  6. AngularJS的this详解

    [this详解]                   1.谁最终调用函数,this指向谁.             ① this指向的,永远只可能是对象!!!!!!             ② thi ...

  7. JAVA的节点流和处理流

    节点流:可以从或向一个特定的地方(节点)读写数据.如FileReader. 处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写.如BufferedReader.处理流的构造方 ...

  8. 区块链入门(1):搭建(Ubuntu系统)Truffle v3.2.1 开发和测试环境

    本文主要讲解ubuntu 16.04下, truffle开发测试环境的搭建.  第一步:安装nodejs 和 npm,有两种比较常见的方法. 方法1:直接在nodejs官网下载nodejs-v6.10 ...

  9. angular页面缓存与页面刷新

      angularJS学习笔记:页面缓存与页面刷新 遇到的问题 现在存在这样一个问题,登录前与登录成功后是同一个页面,只不过通过ngIf来控制哪部分显示,图像信息如下: 所以,整体工作不是很难,无非就 ...

  10. centos手动配置IP和DNS

    手动设置ip地址 如果虚拟机不能自动获取IP,只能手动配置,配置方法如下: 输入命令 #vi /etc/sysconfig/network-scripts/ifcfg-eth0 [编辑网卡的配置文件] ...