使用python 打包成exe文件
python 打包exe
起因:闲的蛋疼
过程:扯的蛋疼
结果:不疼了
1、起因(闲的蛋疼)
突然的emo,不想干活,于是乎找遍微信好友,群发了十年八辈子不联系的一群人(此办法学习于曾经这样对我的人),忙?,于是乎没人回消息.....没办法找小伙伴闲扯吧,于是乎找到了狗子,狗子直接甩给我一个excel,然后说:爸爸,帮我看看怎么快速确定每个单元格内容重复多少次。爸爸都叫了我能不帮吗?于是乎我遍搜excel找函数,最后终于找到了,结果不太理想,不太会玩excel,介于爸爸的身份,那就帮到底吧,就用py写个了个脚本处理,直接输出不同单元格元素出现的次数,写好发他了,他告诉我不想装py环境....这就是让嚼碎了喂嘴里呀,我整个又不爽了,写好了你不用那不是让我做无用功嘛,不行,你必须得用,于是乎我就想到了你不想搞环境那我就直接给你搞个可执行文件(windows上就是exe)不就行了,说干就干,马上把百度打开.......你问我打开百度干嘛?你可以去找度娘问问我为啥这样做
2、过程(扯的蛋疼)
1、经过一通cn.bing.com,终于了解到原来如此简单,使用Pyinstaller就能实现
2、说干就干反正有网直接在线安装Pyinstaller
pip install pyinstaller
你如果没有切换国内源可能会比较慢的痛苦
使用清华源下载安装:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
3、了解一下Pyinstaller指令
| 指令 | 描述 |
|---|---|
| -h, --help | 显示此帮助消息并退出 |
| -v, --version | 显示程序版本信息并退出。 |
| --distpath | 放置捆绑应用的位置,即打包成的文件放置的目录(默认值:./dist) |
| --workpath | 所有临时工作文件.log、.pyz 放在哪里 等等(默认:./build) |
| --clean | 清理 PyInstaller 缓存并删除临时文件,在构建之前 |
| --log-level LEVEL | 构建时控制台消息中的详细信息量。LEVEL可能是TRACE、DEBUG、INFO、WARN、ERROR、CRITICAL之一(默认值:INFO)。 |
| -D, --onedir | 创建包含可执行文件的单文件夹捆绑包 (默认) |
| -F,--onefile | 创建一个单文件捆绑可执行文件。 |
| --specpath | 存储生成的规格文件的文件夹(默认: 当前目录) |
| -n NAME,--name | 分配给捆绑应用程序和规范文件的名称 (默认值:第一个脚本的基本名称) |
| -p,--pathDir | 搜索导入的路径(如使用 PYTHONPATH)。 允许多个路径,用 ':' 分隔,或者 多次使用此选项。相当于 在规范文件中提供 pathex 参数。 |
| --copy-metadata | 复制指定包的元数据。该选项可以多次使用次。 |
| -w,--windowed, --noconsole | 重点:这个选项如果没有,那么你就打不出来窗口程序包,Windows 和 Mac OS X:不提供标准 I/O 的控制台窗口。在 Mac OS 这也会触发构建 Mac OS .app 捆绑包。在 Windows 上这个 如果第一个脚本是“.pyw”文件,则会自动设置选项。 |
| -i或FILE.exe,IDFILE.icns或图像或或FILE.exe,ID或FILE.icns或图片或“无”>--图标,“无”> | 这里设置的是logo图标,可以是空,FILE.ico:将图标应用于 Windows 可执行文件。 FILE.exe,ID: 解压 带有来自 exe 的 ID 的图标。 FILE.icns:将图标应用到 .app 包上 苹果系统。如果输入的图像文件不是平台格式(ico 在 Windows 上,在 Mac 上为 icns),PyInstaller 尝试使用 Pillow 来翻译 图标转换为正确的格式(如果安装了 Pillow)。使用“NONE”不 应用任何图标,从而使操作系统显示一些默认值(默认值:应用 PyInstaller 的图标)。该选项可以多次使用。 |
指令还有很多,我就不一一列举了,反正我也只是从中挑了几个关键性的看了一下便于接下来使用
4、准备了一个logo,加上我的py文件也就两个
app.py、a.ico
5、开始编译
pyinstaller -F -w -i app.ico app.py
接下来开始疼了,
包打出来了,但是点击一闪而过,卧*,啥原因,想来想去好像我写的本来就是个控制台输出,没有什么可视化界面哦,我擦嘞,还得看看怎么搞个简单的可视化界面出来,于是我就又去简单看了一下py的GUI,用tkinter搞了个简单的页面,页面张啥样?自己看去吧https://github.com/SunArmy/handle_excel/
真爽,然后重新开始编译,出来了一个app包(因为我是Mac电脑),问题来了,我想要exe呀,这小伙用的是win,幸好我电脑有个win的虚机,直接打开,文件放进去开始编译,安装py环境,抱着用新不用旧的观念(害死人),直接安装了py3.12,一路顺丰,开始编译
结果凉凉了,编译失败,打不出来,仔细看了报错信息,跟我说是找不到Windows-64bit-arm,根据路径去看了一下确实没有,只有一个Windows-64bit-intel文件夹,郁闷了,这不应该呀,我电脑确实是M1的处理器,底层ARM架构,但是理论上来讲不应该能拉下来intel的依赖偏偏缺少arm的,
这个过程花费了我大概两个小时,脑细胞死N个亿,头发掉N根,中间自己重新下载过pyinstaller离线包,自己去编译,确实出来了而且能用,但是我还是纠结于为啥直接用就不行呢?
思来想去跟我Mac上唯一的不同可能就是py版本不同,Mac上的版本是3.8的,所以我就果断卸载了3.12重新安装了3.8,一路丝滑,打出来了
3、结果(不疼了,好爽)
至此,在经历了各种苦难之后成功打出了exe文件,给好大儿发过去。
我在网上看到这么一个实用之处分享给你们作为学习动力,假如有个小姐姐需要一个自动化脚本工具,可她电脑又没有py环境,这个时候打个exe发给她是不是就很贴心,什么?你说不如给她装py环境更能体现你的技术,那你也挺聪明的,指不定文件出问题或者不小心编辑到了各种问题都要频繁找你,你真是个心机boy哦
使用python 打包成exe文件的更多相关文章
- py库:把python打包成exe文件(pyinstaller)
http://blog.csdn.net/be_quiet_endeavor/article/details/73929077 用Pyinstaller把Python3.4程序打包成可执行文件exe ...
- Python打包成exe文件很难?一分钟即可学会,并添加图标!
环境1.python 3.72.pyinstaller下载方式:2.1 python安装(略)2.2 安装pyinstaller打开DOS窗口输入以下命令:pip install pyinstalle ...
- 使用pyinstaller将python打包成exe文件
步骤: 1)win+R 输入cmd打开dos窗口 2)先安装pyinstaller: pip install pyinstaller 3)然后使用cd命令进入项目文件的路径下: 4)再使用命令 ...
- python打包成exe文件
在cmd命令提示符窗口中输入pip install pyinstaller(在python3的环境下,假如不能安装的话,用pip3 install pyinstaller指令) 使用指令pyinsta ...
- Python Windows下打包成exe文件
Python Windows 下打包成exe文件,使用PyInstaller 软件环境: 1.OS:Win10 64 位 2.Python 3.7 3.安装PyInstaller 先检查是否已安装Py ...
- 如何将 Python 程序打包成 .exe 文件?
有不少订阅本公众号的朋友都不是玩 Python,甚至都不是计算机相关专业的,当我给他们一个 Python 程序时,他们是完全不知道该怎么运行的. 于是我想是不是可以将我的程序打包成可执行文件,直接运行 ...
- 把Python项目打包成exe文件
我们很多时候,写好的程序需要打包成.exe文件才可以发给客户,那么今天我就来谈一谈,如何将一个写好的Python程序打包成exe文件! 首先,我们我们使用到的工具是python 3.7 和 Pyins ...
- python + pyinstaller 实现将python程序打包成exe文件直接运行
pyinstaller 我们在平常学习使用python的时候经常会自己编写一些小程序来使用,虽然python是跨平台的语言,但是如果我们想要在一个没有python以及很多库环境的电脑上使用我们的小程序 ...
- 将 Python 程序打包成 .exe 文件
1.简介 做了一个excel的风控模板,里面含有宏,我用python的第三方xlwings部署到linux后发现,linux环境并不支持xlwings. Python 程序都是脚本的方式,一般是在解析 ...
- python画猫并打包成EXE文件
因python自带有海龟画图库,尝试给爱猫的小仙女来画个猫咪. 1.代码如下 from turtle import * #两个函数用于画心 def curvemove(): for i in rang ...
随机推荐
- 【中介者模式(Mediator)】使用Java实现中介者模式
引言 中介者,何为中介者,顾名思义就是我们的在处理A和B之间的关系的时候,引入一个中间人,来处理这两者之间的关系,例如生活中我们需要去租房,买房,都会有中介,来处理房东和租客之间的协调关系,这个就是中 ...
- [转帖]TiDB之修改root密码
https://www.modb.pro/db/337530 当忘记TiDB root 密码时,可以通过设置skip-grant-table参数来跳过密码验证,登录成功以后再修改root密码. 方法一 ...
- [转帖]CentOS8时间同步服务
时间同步服务 CentOS7之前的版本用的是ntpdate服务,之后用的是chrony服务 默认是安装的了 查看版本 [root@centos8 ~]#rpm -qi chrony Name : ch ...
- [转帖]金仓数据库KingbaseES表空间(tablespace)知多少
金仓数据库KingbaseES表空间定义 金仓数据库KingbaseES中的表空间允许在文件系统里定义那些代表数据库对象的文件存放位置,比如表和索引等.一旦表空间被创建,那么就可以在创建数据库对象时通 ...
- [转帖]harbor 更改网段(docker-compose)
https://blog.csdn.net/Darkernote/article/details/119390862 问题:harbor 安装后网段冲突 docker-compose 一般安装会创建一 ...
- [转帖]Alertmanager 部署配置
https://www.cnblogs.com/winstom/p/11940570.html 目录 前言 源码安装 配置 启动 配置prometheus监控Alertmanager 修改promet ...
- [转帖]rsync参数详解
最近经常需要传送文件,学习到rsync这个非常好用的工具.rsync的传输方不像是scp复制粘贴,而是是创建一个镜像,所以在传输效率上比scp命令要快很多,缺点就是对文件的属性如权限.用户.组.时间戳 ...
- [知乎]2019-nCov的致死率问题
https://www.zhihu.com/question/369630554/answer/998649507 知乎 dr.李的文章 跟自己一开始的理解很相似.. 个人也认为死亡率会高于2% 武汉 ...
- Chrome 历史版本下载点
https://www.chromedownloads.net/chrome64win-stable/
- 一文搞懂Redis
作者: 京东物流 刘丽侠 姚再毅 康睿 刘斌 李振 一.Redis的特性 1.1 Redis为什么快? 基于内存操作,操作不需要跟磁盘交互,单次执行很快 命令执行是单线程,因为是基于内存操作,单次执行 ...