python学习笔记--将python源文件打包成exe文件(pyinstaller)


Posted in Python onMay 26, 2018

pyinstaller 库的使用

PyInstaller是一个十分有用的第三方库,它能够在Windows、Linux、Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包,Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。PyInstaller 需要在命令行(控制台)下用pip 工具安装,如下:

:\>pip install pyinstaller

:\>pip3 install pyinstaller

PyInstaller 的官方网站网址为 http://www.pyinstaller.org/。PyInstaller 库会自动将 PyInstaller 命令安装到 Python 解释器目录中,与 pip 或 pip3 命令路径相同,因此可以直接使用。使用PyInstaller 库十分简单,请注意,由于 PyInstaller 不支持源文件命中有英文句号(.)存在,假设 dpython.py 文件在 D:\codes 目录中,命令如下:

:\>pyinstaller dpython.py

:\>pyinstaller D:\codes\dpython.py

执行完毕后,源文件所在目录将生成 dist 和 build 两个文件夹。其中,build 目录是 pyinstaller 存储临时文件的目录,可以安全删除。最终的打包程序在 dist 内部的 dpython 目录中。目录中其他文件是可执行文件 dpython.exe 的动态链接库。可以通过-F 参数对 Python 源文件生成一个独立的可执行文件,如下:

:\>pyinstaller -F dpython.py

执行后在 dist 目录中出现了 dpython.exe 文件,没有任何依赖库,执行它即可。使用 PyInstaller 库需要注意以下问题:文件路径中不能出现空格和英文句号(.);源文件必须是 UTF-8 编码,暂不支持其他编码类型。采用 IDLE编写的源文件都保存为 UTF-8 编码形式,可直接使用。PyInstaller 有一些常用参数,如下所示:

-h, --help 查看帮助
-v, --version

查看 PyInstaller 版本

--clean 清理打包过程中的临时文件
-D, --onedir
默认值,生成 dist 目录
-F, --onefile
在 dist 文件夹中只生成独立的打包文件第
-p DIR, --paths DIR 添加 Python 文件使用的第三方库路径
-i <.ico or .exe,ID or .icns>,--icon <.ico or .exe,ID or .icns >指定打包程序使用的图标(icon)文件

PyInstaller 命令不需要在 Python 源文件中增加代码,只需要通过命令行进行打包即可。-F 参数最为常用,对于包含第三方库的源文件,可以使用-p 添加第三方库所在路径。如果第三方库由 pip 安装且在Python 环境目录中,则不需要使用-p 参数。

Python 相关文章推荐
python 算法 排序实现快速排序
Jun 05 Python
python实现随机密码字典生成器示例
Apr 09 Python
Python中tell()方法的使用详解
May 24 Python
django中send_mail功能实现详解
Feb 06 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
python使用minimax算法实现五子棋
Jul 29 Python
如何分离django中的媒体、静态文件和网页
Nov 12 Python
浅谈matplotlib.pyplot与axes的关系
Mar 06 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
Python脚本破解压缩文件口令实例教程(zipfile)
Jun 14 Python
关于Python3爬虫利器Appium的安装步骤
Jul 29 Python
Python大批量搜索引擎图像爬虫工具详解
Nov 16 Python
Python多重继承的方法解析执行顺序实例分析
May 26 #Python
Python多继承顺序实例分析
May 26 #Python
Python装饰器用法实例总结
May 26 #Python
python 脚本生成随机 字母 + 数字密码功能
May 26 #Python
Python高级用法总结
May 26 #Python
关于Python的一些学习总结
May 25 #Python
windows下python和pip安装教程
May 25 #Python
You might like
提升PHP执行速度全攻略(下)
2006/10/09 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
JavaScript this 深入理解
2009/07/30 Javascript
js 多种变量定义(对象直接量,数组直接量和函数直接量)
2010/05/24 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
pace.js页面加载进度条插件
2015/09/29 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python中的内置函数getattr()介绍及示例
2014/07/20 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
python基础教程项目三之万能的XML
2018/04/02 Python
python 输出上个月的月末日期实例
2018/04/11 Python
python生成lmdb格式的文件实例
2018/11/08 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
python如何将两个txt文件内容合并
2019/10/18 Python
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
新兵入伍决心书
2015/09/22 职场文书
银行求职信怎么写
2019/06/20 职场文书
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python