Python PyInstaller安装和使用教程详解


Posted in Python onJanuary 08, 2020

Pyinstaller这个库是我用pip下载的第一个模块。接下来通过本文给大家分享Python PyInstaller安装和使用教程,一起看看吧。

安装 PyInstalle

Python 默认并不包含 PyInstaller 模块,因此需要自行安装 PyInstaller 模块。

安装 PyInstaller 模块与安装其他 Python 模块一样,使用 pip 命令安装即可。在命令行输入如下命令:

pip install pyinstaller

强烈建议使用 pip 在线安装的方式来安装 PyInstaller 模块,不要使用离线包的方式来安装,因为 PyInstaller 模块还依赖其他模块,pip 在安装 PyInstaller 模块时会先安装它的依赖模块。

运行上面命令,应该看到如下输出结果:

Successfully installed pyinstaller-x.x.x

其中的 x.x.x 代表 PyInstaller 的版本。

在 PyInstaller 模块安装成功之后,在 Python 的安装目录下的 Scripts(D:\Python\Python36\Scripts) 目录下会增加一个 pyinstaller.exe 程序,接下来就可以使用该工具将 Python 程序生成 EXE 程序了。

PyInstaller生成可执行程序

PyInstaller 工具的命令语法如下:

pyinstaller 选项 Python 源文件

不管这个 Python 应用是单文件的应用,还是多文件的应用,只要在使用 pyinstaller 命令时编译作为程序入口的 Python 程序即可。

PyInstaller工具是跨平台的,它既可以在 Windows平台上使用,也可以在 Mac OS X 平台上运行。在不同的平台上使用 PyInstaller 工具的方法是一样的,它们支持的选项也是一样的。

下面先创建一个 app 目录,在该目录下创建一个 app.py 文件,文件中包含如下代码:

from say_hello import *

def main():
 print('程序开始执行')
 print(say_hello('孙悟空'))
# 增加调用main()函数
if __name__ == '__main__':
 main()

接下来使用命令行工具进入到此 app 目录下,执行如下命令:

pyinstaller -F app.py

执行上面命令,将看到详细的生成过程。当生成完成后,将会在此 app 目录下看到多了一个 dist 目录,并在该目录下看到有一个 app.exe 文件,这就是使用 PyInstaller 工具生成的 EXE 程序。

在命令行窗口中进入 dist 目录下,在该目录执行 app.exe ,将会看到该程序生成如下输出结果:

程序开始执行孙悟空,您好!

由于该程序没有图形用户界面,因此如果读者试图通过双击来运行该程序,则只能看到程序窗口一闪就消失了,这样将无法看到该程序的输出结果。

在上面命令中使用了-F 选项,该选项指定生成单独的 EXE 文件,因此,在 dist 目录下生成了一个单独的大约为 6MB 的 app.exe 文件(在 Mac OS X 平台上生成的文件就叫 app,没有后缀);与 -F 选项对应的是 -D 选项(默认选项),该选项指定生成一个目录(包含多个文件)来作为程序。

下面先将 PyInstaller 工具在 app 目录下生成的 build、dist 目录删除,并将 app.spec 文件也删除,然后使用如下命令来生成 EXE 文件。

pyinstaller -D app.py

执行上面命令,将看到详细的生成过程。当生成完成后,将会在 app 目录下看到多了一个 dist 目录,并在该目录下看到有一个 app 子目录,在该子目录下包含了大量 .dll 文件和 .pyz 文件,它们都是 app.exe 程序的支撑文件。在命令行窗口中运行该 app.exe 程序,同样可以看到与前一个 app.exe 程序相同的输出结果。

PyInstaller 不仅支持 -F、-D 选项,而且也支持如表 1 所示的常用选项。

-h,--help 查看该模块的帮助信息
-F,-onefile 产生单个的可执行文件
-D,--onedir 产生一个目录(包含多个文件)作为可执行程序
-a,--ascii 不包含 Unicode 字符集支持
-d,--debug 产生 debug 版本的可执行文件
-w,--windowed,--noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-c,--nowindowed,--console 指定使用命令行窗口运行程序(仅对 Windows 有效)
-o DIR,--out=DIR 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件
-p DIR,--path=DIR 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux使用冒号)来分隔多个路径
-n NAME,--name=NAME 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

在表 1 中列出的只是 PyInstaller 模块所支持的常用选项,如果需要了解 PyInstaller 选项的详细信息,则可通过 pyinstaller -h 来查看。

总结

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

Python 相关文章推荐
python小技巧之批量抓取美女图片
Jun 06 Python
Python脚本实现网卡流量监控
Feb 14 Python
web.py在SAE中的Session问题解决方法(使用mysql存储)
Jun 24 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
Mar 20 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
python定时关机小脚本
Jun 20 Python
python实现任意位置文件分割的实例
Dec 14 Python
python 移动图片到另外一个文件夹的实例
Jan 10 Python
详解【python】str与json类型转换
Apr 29 Python
python实现简单五子棋游戏
Jun 18 Python
Python将文字转成语音并读出来的实例详解
Jul 15 Python
详解python tcp编程
Aug 24 Python
关于Pytorch的MLP模块实现方式
Jan 07 #Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 #Python
Pytorch中膨胀卷积的用法详解
Jan 07 #Python
Python urlopen()和urlretrieve()用法解析
Jan 07 #Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 #Python
解决torch.autograd.backward中的参数问题
Jan 07 #Python
Pytorch 中retain_graph的用法详解
Jan 07 #Python
You might like
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
jQuery技巧总结
2011/01/01 Javascript
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
JS的replace方法介绍
2012/10/20 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
vue自定义一个v-model的实现代码
2018/06/21 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
详解Node.JS模块 process
2020/08/31 Javascript
pandas对指定列进行填充的方法
2018/04/11 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
东芝官网商城:还原日式美学,打造美好生活
2018/12/27 全球购物
管理科学大学生求职信
2013/11/13 职场文书
经贸日语专业个人求职信范文
2013/12/28 职场文书
消防先进事迹材料
2014/02/10 职场文书
幼儿园父亲节活动方案
2014/03/11 职场文书
施工安全汇报材料
2014/08/17 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python