Win下PyInstaller 安装和使用教程


Posted in Python onDecember 25, 2019

简介

PyInstaller可以将Python源代码发布成Win/MacOS等系统中的可执行文件。对开发者而言隐藏了源码实现,保护了知识产权。对使用者而言不用装环境,傻瓜式的双击就可以运行程序。

PyInstaller常见命令

如下所示:

Win下PyInstaller 安装和使用教程

命令 说明-F生成单个可执行文件-D ?onedir创建一个目录,包含exe文件,但会依赖很多文件(默认选项)-w表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧-c ?console, ?nowindowed使用控制台,无界面(默认)-p自定义需要加载的类路径,一般情况下用不到-i可执行文件的图标-v查看版本信息-h查看帮助信息

安装PyInstaller

流程如下所示:

1.下载PyInstaller,这里我选择的是PyInstaller-3.5.tar.gz版本。如图所示:

Win下PyInstaller 安装和使用教程

2.解压PyInstaller-3.5.tar.gz到桌面;然后在setup.py文件所在的目录处打开cmd。如图所示:

Win下PyInstaller 安装和使用教程3.

由于python3.7.4在安装时顺带安装了setuptools,所以我们可以直接使用"python setup.py install"命令来安装PyInstaller;然后使用"pyinstaller -v"查看版本信息来验证是否安装成功。如图所示:

Win下PyInstaller 安装和使用教程

使用PyInstaller

流程如下所示:

1.我现在需要对test/app.py文件生成一个具有test/app.ico图标样式的可执行文件app.exe。此时就需要在app.py所在目录打开cmd;然后执行"pyinstaller -F -w -i app.ico app.py"命令来生成可执行文件app.exe。

app.py源码如下所示

参考pyqt5-win安装和使用来设置pyqt5的环境。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
Py40 PyQt5 tutorial
In this example, we create a bit
more complicated window layout using
the QGridLayout manager.
author: Jan Bodnar
website: py40.com
last edited: January 2015
"""
import sys
from PyQt5.QtWidgets import (QWidget, QLabel, QLineEdit,
  QTextEdit, QGridLayout, QApplication)
class Example(QWidget):
 def __init__(self):
 super().__init__()
 self.initUI()
 def initUI(self):
 title = QLabel('Title')
 author = QLabel('Author')
 review = QLabel('Review')
 titleEdit = QLineEdit()
 authorEdit = QLineEdit()
 reviewEdit = QTextEdit()
 grid = QGridLayout()
 grid.setSpacing(10)
 grid.addWidget(title, 1, 0)
 grid.addWidget(titleEdit, 1, 1)
 grid.addWidget(author, 2, 0)
 grid.addWidget(authorEdit, 2, 1)
 grid.addWidget(review, 3, 0)
 grid.addWidget(reviewEdit, 3, 1, 5, 1)
 self.setLayout(grid)
 self.setGeometry(300, 300, 350, 300)
 self.setWindowTitle('Review')
 self.show()
if __name__ == '__main__':
 app = QApplication(sys.argv)
 ex = Example()
 sys.exit(app.exec_())

命令执行如图所示

Win下PyInstaller 安装和使用教程

2.使用PyInstaller成功发布可执行文件后,会在app.py文件所在的目录中生成__pycache__,build,dist,app.spec等文件或者目录。其中dist目录中会存在一个具有app.ico样式的可执行文件app.exe,此时直接双击app.exe就可以执行了。如图所示:

Win下PyInstaller 安装和使用教程

总结

以上所述是小编给大家介绍的Win下PyInstaller 安装和使用教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python中的模块和包概念介绍
Apr 13 Python
用Python写冒泡排序代码
Apr 12 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
python通过zabbix api获取主机
Sep 17 Python
用Python实现筛选文件脚本的方法
Oct 27 Python
Python 多线程不加锁分块读取文件的方法
Dec 11 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
简单了解python的break、continue、pass
Jul 08 Python
对Python中一维向量和一维向量转置相乘的方法详解
Aug 26 Python
基于python实现语音录入识别代码实例
Jan 17 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
Python Pandas 删除列操作
Mar 16 Python
如何在mac环境中用python处理protobuf
Dec 25 #Python
Python Print实现在输出中插入变量的例子
Dec 25 #Python
django数据模型(Model)的字段类型解析
Dec 25 #Python
python装饰器的特性原理详解
Dec 25 #Python
Python将列表中的元素转化为数字并排序的示例
Dec 25 #Python
python中的subprocess.Popen()使用详解
Dec 25 #Python
python打印n位数“水仙花数”(实例代码)
Dec 25 #Python
You might like
Smarty安装配置方法
2008/04/10 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
AngularJS实现动态添加Option的方法
2017/05/17 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
python将文本中的空格替换为换行的方法
2018/03/19 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
如何获取Python简单for循环索引
2019/11/21 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
阿里云:Aliyun.com
2017/02/15 全球购物
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
什么是属性访问器
2015/10/26 面试题
称象教学反思
2014/02/03 职场文书
产品质量承诺书范文
2014/03/27 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
农村文化建设标语
2014/10/07 职场文书
捐书仪式主持词
2015/07/04 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
一文搞懂MySQL索引页结构
2022/02/28 MySQL
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js