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多线程编程方式分析示例详解
Dec 06 Python
Python中字符编码简介、方法及使用建议
Jan 08 Python
Python中使用HTMLParser解析html实例
Feb 08 Python
详解Python的Django框架中的Cookie相关处理
Jul 22 Python
python爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
python绘制铅球的运行轨迹代码分享
Nov 14 Python
Python发展史及网络爬虫
Jun 19 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
selenium+PhantomJS爬取豆瓣读书
Aug 26 Python
PyQt使用QPropertyAnimation开发简单动画
Apr 02 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
对PyTorch中inplace字段的全面理解
May 22 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处理换行符的问题 \r\n
2013/06/13 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
35个Python编程小技巧
2014/04/01 Python
深入理解Django中内置的用户认证
2017/10/06 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
2020/03/30 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
购买原创艺术品:Zatista
2019/11/09 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
在求职信中如何凸显个人优势
2013/10/30 职场文书
食品安全检查制度
2014/02/03 职场文书
高一数学教学反思
2014/02/07 职场文书
企业负责人任命书
2014/06/05 职场文书
节约用水标语
2014/06/11 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
高中生物教学反思
2016/02/20 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js
Elasticsearch 索引操作和增删改查
2022/04/19 Python