使用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 ...
随机推荐
- 每天学五分钟 Liunx 001 | 用户及用户组
Liunx 文件权限 [root@controller-0 ~]# ll -al heihei -rw-r--r--. 1 root root 0 Mar 3 07:39 heihei 第一列 -rw ...
- javase项目 正常导入jar 包
1,在 java project 目录下新建 lib 文件夹 2,将 mysql 的 jar 包 复制到 新建的 lib 文件夹 3,选中 lib 下的 jar 包 , 右键点击选择 build pa ...
- 微信小程序——如何获取url中的数据
如何获取url中的数据 这里举个例子! 当我们需要编辑一个可以点击的图片超链接 这时候结构是这个样子的 首先最外层有一个视图层view 在view中添加超链接标签<navigator> & ...
- 【转】国产飞腾D2000:基于A72?
https://zhuanlan.zhihu.com/p/612054128 China's Phytium D2000: Building on A72? 国产飞腾D2000:基于A72? PS:麒 ...
- [转帖]为什么需要在脚本文件的开头加上#!/ bin / bash?
本文翻译自:Why do you need to put #!/bin/bash at the beginning of a script file? I have made Bash scripts ...
- [转帖]警惕Oracle数据库性能“隐形杀手”——Direct Path Read
一. 简介 Oracle 的11g版本正式发布到今天已经10年有余,最新版本也已经到了20c,但是Direct Path Read(直接路径读)导致性能问题的案例仍时有发生,很多12c的用户还是经常遇 ...
- [转帖]学习如何编写 Shell 脚本(基础篇)
https://juejin.cn/post/6930013333454061575 前言 如果仅仅会 Linux 一些命令,其实已经可以让你在平时的工作中游刃有余了.但如果你还会编写 Shell 脚 ...
- [转帖]/etc/profile和/etc/environment的区别
时间 2019-11-07 标签 profile environment 区别 繁體版 原文 https://my.oschina.net/u/2885925/blog/2989579 /etc ...
- ChaosMesh 半离线安装过程
说明 所谓半离线值得是公司拉不下镜像来 !-_-! 都是学习的官网资料https://chaos-mesh.org/docs 镜像获取 其实镜像获取很容易. 找一个能上外网的VPC就可以了. mkdi ...
- echarts使用transform缩放后导致图标模糊
echarts使用transform缩放后导致图标模糊 --的解决办法 当使用了transform: scale(x,y)缩放后致使echarts图表模糊.怎么解决这个问题呢? 第一种解决办法:将ca ...