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中__call__方法示例分析
Oct 11 Python
python创建进程fork用法
Jun 04 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
动态规划之矩阵连乘问题Python实现方法
Nov 27 Python
Python中多个数组行合并及列合并的方法总结
Apr 12 Python
python计算两个矩形框重合百分比的实例
Nov 07 Python
python tkinter实现界面切换的示例代码
Jun 14 Python
Python实现FM算法解析
Jun 18 Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
深入分析python 排序
Aug 24 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
全国中波电台频率表
2020/03/11 无线电
做个自己站内搜索引擎
2006/10/09 PHP
关于Intype一些小问题的解决办法
2008/03/28 PHP
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
2014/09/01 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
理解Koa2中的async&await的用法
2018/02/05 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
跟老齐学Python之用Python计算
2014/09/12 Python
python文件操作整理汇总
2014/10/21 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
2016/06/30 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
Python实现密码薄文件读写操作
2019/12/16 Python
基于python修改srt字幕的时间轴
2020/02/03 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
幼儿教师思想汇报
2014/01/10 职场文书
学校节能减排方案
2014/06/13 职场文书
军训个人总结
2015/03/03 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技