ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从干一天到10分钟:我把Python代码打包成exe,帮同事省时间

从干一天到10分钟:我把Python代码打包成exe,帮同事省时间 你有没有写出一个好用的脚本, 打算分享给同事去用, 然而对方电脑之上连那个都没有安装?去年月, 我们公司的财务碰到了这样一个问题, 月底的时候, 需要去匹配两个大表的数据, 要将上百张子表跟汇总表进行匹配呢, 然后把关键数据写入汇总表里头。以前靠手工操作的话, 得花费将近一天的时间, 后来我给她写了个脚本, 不过我没办法每次都帮她运行, 若直接把代码发给她, 她又不会使用。最终, 我将代码制成exe文件, 问题顺利解决。此刻, 她双击一下, 不到十分钟便大功告成, 再也无需耗费一整天折腾了。今儿就开始讲讲怎样将代码打包成exe, 我所挑选的是最为简便的方式, 也就是auto - py - to - exe, 连命令行都无需去记。为什么要打包成exe文件我讲真, 打从一开始, 对于这个问题, 我并未予以太多的留意, 一直到后来, 当我为客户进行工具部署之际, 遭遇挫折, 才由此而明白其所以然。最直接的好处就是对方不需要装环境。试想一下, 你撰写了一个脚本打算供财务、销售以及客服用, 然而他们的电脑上很有可能没有, 即便有, 版本也不见得正确, pip库也没准齐全。你让他们先进行安装, 接着配置环境, 随后pip众多包, 如此这般这事儿基本上就失败了。打包成exe后就像发个普通软件一样双击就能跑零门槛。第二个好处保护代码逻辑。就算代码从理论层面来讲都能够被反编译, 然而将其打包成为exe起码增添了一层阻碍。就内部工具而言, 这种程度的保护是足够的。第三个好处方便分发和管理。exe文件, 它是那种单独存在的文件, 不管是通过发微信的方式, 还是借助传U盘的途径, 都具备便利的特性。它跟脚本不一样, 脚本的话, 或许还得附带配置文件, 以及数据文件, 呈现出杂乱无章的一堆状态。怎么打包选最简单的方式当前市面上存在着数量不少的打包工具, 诸如、、、等等, 我针对它们进行了一番尝试, 一圈下来可以实话实话地讲, 关于大多数人这一群体而言, auto-py-to-exe乃是最易于上手操作的。为什么会这样呢? 原因在于它具备图形界面, 无需去记忆命令行参数, 仅仅通过点击鼠标就能够完成全部操作。它在底层所运用的方式是, 将那些复杂的参数统统转化成了可视化的选项。第一步安装auto-py-to-exe打开命令行输入pip install auto-py-to-exe等安装完成后再输入auto-py-to-exe界面会被浏览器自动打开, 此情况为图形界面, 后续仅需在这个界面里开展操作便可。第二步配置打包选项界面虽然选项多但核心就这几个选取你打算进行打包的文件, 举例来说, 若选One File, 如此这般打包而成的便是一个独立的 exe 文件, 简洁且干脆: 要是你的程序具备图形界面, 那就选Based 以隐藏控制台 倘若属于命令行程序, 便选Based Icon: 能够挑选一个图标文件.ico 格式, 使得 exe 看上去更具专业性, 这是可选项 Files: 要是你的脚本依赖配置文件、数据文件, 需在此处添加进去, 否则打包后运行将会报错。在完成配置之后, 去点击那个“ .PY TO .EXE”按钮, 然后等待几分钟, 如此便完成了该项操作。第三步测试exe文件完成打包之后, exe文件处于目录之中。首先, 在自己的电脑之上进行双击操作来开展测试一回, 以此保证能够正常运行。坑我踩过: 首次打包之际, 忘却将配置文件放进Files里头, 致使exe运行之后老是报错称找不到文件。而后查找许久方才发觉, 打包成单文件之后, 程序运行之时会解压至临时目录, 路径跟开发环境并不一样。下面讲讲exe文件常用的场景根据我的项目经验这几个场景特别适合打包成exe1. 内部工具分发恰似我起始所讲的财务数据匹配工具, 这般供非技术人员使用的工具, 将其打包成exe乃是标准配置, 对方无需懂得技术, 会运用鼠标即可。2. 定时任务/批处理存在一些自动化脚本, 这些脚本是需要定时去运行的, 在将其打包成为exe之后, 通过任务计划程序便能够设置定时执行, 相较于所使用的库而言, 显得更为稳定。3. 给客户的演示程序若是你为客户制作个演示程序, 将其打包成可执行程序会显得更为专业, 并且还能规避因客户环境问题所引发的各类麻烦状况。4. 不方便公开源码的场景尽管打包并非加密, 然而起码能够避免代码被任意复制, 针对某些商业逻辑而言这般的保护级别是足够用的。实战案例财务数据匹配从一天到几分钟说回开头提到的财务同事的案例这个需求其实挺典型的。问题背景月底的时候, 财务要做的是, 将上百个子表之中所包含的数据, 往汇总表里去进行匹配。在每个子表内, 存在一些关键字段, 诸如销售数据、客户信息以及订单金额等。匹配的依据是订单号, 要依据这个订单号, 把对应的各个子表中的金额、客户信息等, 填充到汇总表当中去。以往她是怎样做的呢, 打开一个子表, 复制订单号, 前往汇总表里进行查找, 复制对应的数据, 而后再粘贴回去, 如此这般重复上百次, 我曾看过她的操作, 那种机械的样子着实让人心疼。之后呢, 我为她撰写了一个脚本, 这个脚本具备一定的通用性, 接着我运用 auto - py - to-exe 进行打包生成 exe, 她仅仅只需把 Excel 文件放置到指定的目录中, 去依据所呈现的界面做出对应的选择, 随后双击那个 exe 便可。而我最终为财务所制作的工具界面就是如此这般, 对多种匹配模式给予支援呢……效果对比我在之后询问过她关于使用的感受, 她讲道, 先前每到月底的时候就会格外焦虑, 而且还烦躁, 如今感觉十分简单, 完全不存在压力。这里补充几个实用技巧打包过程中有些坑我踩过这里分享几个经验1. 文件路径问题把文件打包成单文件之后, 程序在运行期间会解压到临时目录当中, 因此当读取文件时需要使用相对路径或者动态获取exe所在的目录标点符号:import sys import os if getattr(sys, frozen, False): # 打包后的exe路径 base_path os.path.dirname(sys.executable) else: # 开发环境的路径 base_path os.path.dirname(os.path.abspath(__file__)) file_path os.path.join(base_path, data.xlsx)2. exe体积优化假设打包而出的exe特别大呢比如说要是超过100MB的话, 那么或许是打包了并非必要的库。能够借助---去排除掉不需要的模块, 又或者是在虚拟环境当中仅仅安装必要的库之后再进行打包。3. 杀毒软件误报有的杀毒软件对于打包而成的exe会将其识别当作病毒, 这属于正常状况, 要是碰到这种情形, 能够添加白名单或更换一款杀毒软件。4. 测试要充分打了包之后, 务必要在干干净净的电脑上去进行测试, 最好选那种没有任何环境的机器, 以此来保证能够正常运行。我之前有一个工具, 在我自己的电脑上运行得好好的, 可是给客户使用的时候却报错了, 原因就是客户的电脑缺少了某个系统库。本来呢, 将代码制作成exe, 实际上是为了把使用的门槛给降低。哪怕技术再怎么好, 要是别人没办法去用到它, 那价值可就会大幅地被削减了。我于2019年起开始使用, 之后发觉auto - py - to - exe更为省心, 于是便一直沿用至今, 为客户制作的工具之中, 只要属于需要分发的范畴, 基本上均被打包化作exe。固然, 打包并非是无所不能的。要是你的程序格外复杂, 涉及诸多外部资源的依赖, 又或者需要经常进行更新, 那么或许得思索一些别的方案, 像是做成Web服务或者采用容器化。但对于大多数日常自动化工具来说exe已经够用了。在工作期间, 你可曾碰到过那种得将脚本给予他人的情形? 那又是怎样去处理解决的? 到评论区域交流交流。
返回列表