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 15 Python
python检查指定文件是否存在的方法
Jul 06 Python
python读取LMDB中图像的方法
Jul 02 Python
Python Flask前后端Ajax交互的方法示例
Jul 31 Python
Python3中函数参数传递方式实例详解
May 05 Python
python3 tcp的粘包现象和解决办法解析
Dec 09 Python
pytorch:torch.mm()和torch.matmul()的使用
Dec 27 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
matplotlib quiver箭图绘制案例
Apr 17 Python
Python 2.6.6升级到Python2.7.15的详细步骤
Dec 14 Python
Python的轻量级ORM框架peewee使用教程
Feb 05 Python
深入解析NumPy中的Broadcasting广播机制
May 30 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
PHP5+UTF8多文件上传类
2008/10/17 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
python连接mysql并提交mysql事务示例
2014/03/05 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
python中删除某个元素的方法解析
2019/11/05 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
Python实现上下文管理器的方法
2020/08/07 Python
python 基于opencv操作摄像头
2020/12/24 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
乐天旅游香港网站:日本饭店预订
2017/11/29 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
介绍一下Mysql的存储引擎
2015/02/12 面试题
运动会解说词200字
2014/02/06 职场文书
植物生产学专业求职信
2014/08/08 职场文书
解除劳动合同协议书
2014/09/17 职场文书
客户经理岗位职责
2015/01/31 职场文书
三国演义读书笔记
2015/06/25 职场文书
工程主管竞聘书
2015/09/15 职场文书
2016读书月活动心得体会
2016/01/14 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android