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 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
Python THREADING模块中的JOIN()方法深入理解
Feb 18 Python
使用Python操作MySQL的一些基本方法
Aug 16 Python
python 字典(dict)按键和值排序
Jun 28 Python
python调用Delphi写的Dll代码示例
Dec 05 Python
Flask框架Flask-Principal基本用法实例分析
Jul 23 Python
Tornado Web Server框架编写简易Python服务器
Jul 28 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
Python绘图实现台风路径可视化代码实例
Oct 23 Python
Python 中Operator模块的使用
Jan 30 Python
Django中如何用xlwt生成表格的方法步骤
Jan 31 Python
Python数据分析之pandas函数详解
Apr 21 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
javascript Math.random()随机数函数
2009/11/04 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
python游戏开发的五个案例分享
2020/03/09 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
实习单位推荐信范文
2013/11/27 职场文书
大学生旷课检讨书
2014/01/22 职场文书
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
敬老院活动总结
2014/04/28 职场文书
国际商贸专业自荐信
2014/06/09 职场文书
公司规章制度范本
2015/08/03 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android