python3.9实现pyinstaller打包python文件成exe


Posted in Python onDecember 13, 2020

简述

1.python

python作为一门解释型脚本语言,它有三种发布方式:

  • 文件 : 源码文件,运行需要使用者安装Python环境并且安装依赖的各种库
  • pyc文件:pyc文件是Python解释器可以识别的二进制码,可跨平台的,需要使用者安装相应版本的Python和依赖库。
  • 可执行文件:不需要安装python环境和依赖库,可针对不同平台需要打包不同的可执行文件(Windows,Linux,Mac,…)

2.pyInstaller

  •  PyInstaller工具可以把python解析器和脚本打包成一个可执行的文件,并不是编译成真正的机器码,打包成一个可执行文件后运行效率可能会降低,好处就是在使用者的机器上可以不用安装python和你的脚本依赖的库。
  • 利用PyInstaller对指定的的脚本打包时,会先分析脚本所依赖的其他脚本,然后根据导包路径去查找,把所有相关的脚本收集起来,包括Python解析器,然后根据你的命令参数可分别生成文件夹,或者打包成一个可执行文件。
  • 无论是生成的文件夹里的可执行文件或者只打包成一个可执行文件都可以直接运行,前者需要把整个文件夹都给别人。
  • 注意:PyInstaller打包的执行文件,只能在和打包机器系统同样的环境下。也就是说,不具备可移植性,若需要在不同系统上运行,就必须针对该平台进行打包。

环境准备

1.python安装

进入官网https://www.python.org/ 点击Downloads下的Windows按钮,进入下载页面,并安装

python3.9实现pyinstaller打包python文件成exe

打开cmd,输入python,如果结果如下图所示则表示安装成功!

python3.9实现pyinstaller打包python文件成exe

卸载Python,点击之前下载的Python安装包,点击Uninstall卸载。

2.pyInstaller安装

PyInstaller在windows下的安装
使用命令pip install PyInstaller即可
在windows下,pyinstaller需要PyWin32的支持。当用pip安装PyInstaller时未找到PyWin32,会自动安装pypiwin32

python3.9实现pyinstaller打包python文件成exe

PyInstaller在mac,linux下的安装
pip install PyInstaller

PyInstaller打包

1. 基本语法:

PyInstaller -F -w -i xxx.ico dev.py --hidden-import=pandas._libs.tslibs.timedeltas

常用参数:
-F 指只生成一个exe文件,不生成其他dll文件
-w 不弹出交互窗口,如果你想程序运行的时候,与程序进行交互,则不加该参数
-i 设定程序图标 ,其后面的xxx.ico文件就是程序小图标
dev.py 要打包的程序,如果你不是在dev.py同一级目录下执行的打包命令,这里得写上dev.py的路径地址
?hidden-import=pandas._libs.tslibs.timedeltas 隐藏相关模块的引用

注意:你在哪个目录下执行的命令,默认打包完成的文件或者文件夹就在该目录

2. 打包实例:

D:\itwork\python>pyinstaller -F -c one.py

python3.9实现pyinstaller打包python文件成exe

python3.9实现pyinstaller打包python文件成exe

python3.9实现pyinstaller打包python文件成exe

PyInstaller打包常见问题

1.超时:Read timed out

python3.9实现pyinstaller打包python文件成exe

到此这篇关于python3.9实现pyinstaller打包python文件成exe的文章就介绍到这了,更多相关python文件打包成exe内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
分享Python开发中要注意的十个小贴士
Aug 30 Python
Python应用03 使用PyQT制作视频播放器实例
Dec 07 Python
利用python微信库itchat实现微信自动回复功能
May 18 Python
利用python实现xml与数据库读取转换的方法
Jun 17 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
对Python中Iterator和Iterable的区别详解
Oct 18 Python
python 实现数字字符串左侧补零的方法
Dec 04 Python
Python正则表达式和re库知识点总结
Feb 11 Python
Python文件读写常见用法总结
Feb 22 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
python机器学习库xgboost的使用
Jan 20 Python
Keras搭建自编码器操作
Jul 03 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 #Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 #Python
Pandas DataFrame求差集的示例代码
Dec 13 #Python
pandas实现导出数据的四种方式
Dec 13 #Python
python绘图pyecharts+pandas的使用详解
Dec 13 #Python
Pandas对每个分组应用apply函数的实现
Dec 13 #Python
python安装及变量名介绍详解
Dec 12 #Python
You might like
php中adodbzip类实例
2014/12/08 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
JS 实现可停顿的垂直滚动实例代码
2016/11/23 Javascript
浅谈Vue.js
2017/03/02 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
python实现的简单文本类游戏实例
2015/04/28 Python
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
Django 连接sql server数据库的方法
2018/06/30 Python
django创建超级用户过程解析
2019/09/18 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
python 安装impala包步骤
2020/03/28 Python
Python 实现国产SM3加密算法的示例代码
2020/09/21 Python
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
九年级科学教学反思
2014/01/29 职场文书
高三学习决心书
2014/03/11 职场文书
超市收银员岗位职责
2015/04/07 职场文书
2015年留守儿童工作总结
2015/05/22 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
Python入门之使用pandas分析excel数据
2021/05/12 Python
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL