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遍历目录的方法小结
Apr 28 Python
解决python使用open打开文件中文乱码的问题
Dec 29 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
Python 实现两个服务器之间文件的上传方法
Feb 13 Python
详解python-图像处理(映射变换)
Mar 22 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
python实现的自动发送消息功能详解
Aug 15 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
Mar 03 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
Apr 27 Python
python实现录音功能(可随时停止录音)
Oct 26 Python
python数字图像处理实现图像的形变与缩放
Jun 28 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 编程的 5个良好习惯
2009/02/20 PHP
谷歌音乐搜索栏的提示功能php修正代码
2011/05/09 PHP
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
javascript实现电商放大镜效果
2020/11/23 Javascript
pycharm 使用心得(二)设置字体大小
2014/06/05 Python
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
Python File readlines() 使用方法
2018/03/19 Python
python getpass实现密文实例详解
2019/09/24 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
幼儿教育感言
2014/02/05 职场文书
弄虚作假心得体会
2014/09/10 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
2014年组织部工作总结
2014/11/14 职场文书
事业单位考察材料范文
2014/12/25 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android