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使用cookielib模块操作cookie的实例教程
Jul 12 Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
Aug 30 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
Jan 11 Python
python画出三角形外接圆和内切圆的方法
Jan 25 Python
python pandas中DataFrame类型数据操作函数的方法
Apr 08 Python
python:print格式化输出到文件的实例
May 14 Python
很酷的python表白工具 你喜欢我吗
Apr 11 Python
简单了解Pandas缺失值处理方法
Nov 16 Python
Python基于Dlib的人脸识别系统的实现
Feb 26 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
Mar 12 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
浅谈Python响应式类库RxPy
Jun 14 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
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
js 居中漂浮广告
2010/03/21 Javascript
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
现如今最流行的JavaScript代码规范
2014/03/08 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
2015/03/02 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
jQuery接受后台传递的List的实例详解
2017/08/02 jQuery
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
关于Python作用域自学总结
2019/06/10 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
python文件操作的简单方法总结
2019/11/07 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
高一历史教学反思
2014/01/13 职场文书
争论的故事教学反思
2014/02/06 职场文书
手机被没收检讨书
2014/02/22 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
教师师德师风整改措施
2014/10/24 职场文书
考试没考好检讨书
2015/05/06 职场文书