对商业智能 BI, 大数据分析挖掘, 机器学习, python,R 等数据领域感兴趣的同学加微信: tstoutiao, 邀请你进入数据爱好者交流群, 数据爱好者们都在这儿.
作者: 木子 - 李 行走在数据分析路上的小白
Python 爱好者社区专栏作者
知乎 ID:https://www.zhihu.com/people/Muzi.Li
本文环境配置:
系统 =>windows10:64 位
语言 =>Python:3.7.1
第三方库
- pywin32:224
- PyInstaller:3.4
- PyQT5:5.11.3
工具 =>PyCharm:2018.3.1
1, 安装 Python
官网下载对应系统位数的版本:
https://www.python.org/
使用 pip 命令安装第三方库:
- pip install pywin32
- pip install PyInstaller
- pip install PyQT5
2, 安装 PyCharm
https://www.jetbrains.com/pycharm/
首先编写需要转换 exe 的 Python 代码, 使用 PyQT5 做一个简单的 GUI
创建一个窗体
- import sysfrom PyQt5.Qt import *App = QApplication(sys.argv)
- # 实例对象# 窗体大小 Windows = QWidget()Windows.resize(500, 500)Windows.setWindowTitle('测试')Windows.move(400, 200)# 显示窗体 Windows.show()sys.exit(App.exec_())
在窗体上添加一个标签
# 标签 label = QLabel(Windows)label.setText('测试显示')label.move(250, 100)
定义两个槽函数, 功能是修改标签上的内容
# 槽函数 1def btn_Old(): label.setText('测试显示')# 槽函数 2def btn_New(): label.setText('点我干啥')
在窗体上添加两个按钮, 并链接槽函数
- # 按钮 1btn1 = QPushButton(Windows)btn1.setText('恢复显示')btn1.move(200, 200)btn1.clicked.connect(btn_Old)
- # 信号与槽# 按钮 2btn1 = QPushButton(Windows)btn1.setText('修改显示')btn1.move(300, 200)btn1.clicked.connect(btn_New)
- # 信号与槽
一个简单的 GUI 搞定, 完整代码如下, 代码并未做优化, 只是测试用. 文件名称定义为 test.py
3, 转换 EXE
打开命令窗口, 切换到 test.py 文件的路径下
输入命令
pyinstaller -F -w test.py
开始执行代码, 运行完成之后, 在 text.py 文件的目录下有一个 dist 文件夹, 里面就有生成的 EXE 文件
搞定, 直接双击运行编写好的 GUI 程序.
PyInstaller 部分参数的含义
-F 表示生成单个可执行文件
-w 表示去掉控制台窗口, 这在 GUI 界面时非常有用. 不过如果是命令行程序的话那就把这个选项删除吧!
-i 表示可执行文件的图标
PyInstaller 注意点
1, 有一些代码需要调用一些图片和资源文件的, 这是不会自动导入的, 需要你自己手动复制进去才行. 不然 exe 文件运行时命令窗口会报错找不到这个文件.
2, 当你使用错误的参数去打包或者打包到一半中断, 等等此类运行到一半没了的情况. 会导致你原来的 py 文件变成一个 0KB 的空文件. 里面的代码会全部消失!!! 所以以后需要有个良好的习惯, 就是复制一份代码出来, 用这个副本进行打包. 并且参数出错, 或者打错了导致失败时, 检查下副本文件的 py 文件是否还存在再继续重新打包, 不然打出来的就是空的文件, 自然一直闪退, 因为压根没内容.
3, 写代码的时候应当有个良好的习惯, 用什么函数导什么函数, 不要上来 import 整个库, 最后你会发现你一个 100KB 的代码打包出来有 500MB, 全是库, 简直无语
从今往后, 专心 Python
Python 的爱好者社区历史文章大合集:
Python 的爱好者社区历史文章列表
关注后在公众号内回复 "课程" 即可获取:
小编的转行入职数据科学 (数据分析挖掘 / 机器学习方向)[最新免费]
小编的 Python 的入门免费视频课程!
小编的 Python 的快速上手 matplotlib 可视化库!
崔老师爬虫实战案例免费学习视频.
陈老师数据分析报告扩展制作免费学习视频.
玩转大数据分析! Spark2.X + Python 精华实战课程免费学习视频.
来源: http://www.jianshu.com/p/dbdfd6aed53e