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中for循环详解
Jan 17 Python
10个易被忽视但应掌握的Python基本用法
Apr 01 Python
python去除扩展名的实例讲解
Apr 23 Python
numpy向空的二维数组中添加元素的方法
Nov 01 Python
手机使用python操作图片文件(pydroid3)过程详解
Sep 25 Python
OpenCV 表盘指针自动读数的示例代码
Apr 10 Python
Django中文件上传和文件访问微项目的方法
Apr 27 Python
Python3创建Django项目的几种方法(3种)
Jun 03 Python
python 爬虫如何实现百度翻译
Nov 16 Python
Python常用断言函数实例汇总
Nov 30 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 Python
彻底弄懂Python中的回调函数(callback)
Jun 25 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
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
jQuery 渐变下拉菜单
2009/12/15 Javascript
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
JQuery for与each性能比较分析
2013/05/14 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
vue页面切换项目实现转场动画的方法
2019/11/12 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
Python自动连接ssh的方法
2015/03/07 Python
python统计文本文件内单词数量的方法
2015/05/30 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
2015年党员公开承诺书范文
2015/01/22 职场文书
大连导游词
2015/02/12 职场文书
电力培训学习心得体会
2016/01/11 职场文书
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android