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类定义的讲解
Nov 01 Python
35个Python编程小技巧
Apr 01 Python
Python进行数据科学工作的简单入门教程
Apr 01 Python
python实现二维码扫码自动登录淘宝
Dec 27 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 Python
python2与python3中关于对NaN类型数据的判断和转换方法
Oct 30 Python
Python使用LDAP做用户认证的方法
Jun 20 Python
Python数据结构与算法(几种排序)小结
Jun 22 Python
详解django实现自定义manage命令的扩展
Aug 13 Python
python集合常见运算案例解析
Oct 17 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
Jun 12 Python
Python+Matplotlib+LaTeX玩转数学公式
Feb 24 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
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
JavaScript prototype对象的属性说明
2010/03/13 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
招聘网站基于jQuery实现自动刷新简历
2015/05/10 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
HTML的select控件美化
2017/03/27 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
Python实现简单的2048小游戏
2021/03/01 Python
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
2020/08/19 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
澳大利亚巧克力花束和礼品网站:Tastebuds
2019/03/15 全球购物
初二物理教学反思
2014/01/29 职场文书
党风廉政承诺书
2014/03/27 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
oracle表分区的概念及操作
2021/04/24 Oracle
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js
mysql的单列多值存储实例详解
2022/04/05 MySQL