小技巧:让你写的python代码直接点击运行

Python语言现在很火,被人工智能带的。

大约在35年前,Python被荷兰人创造出来,一直是小众语言,主要被科研人员使用。

20年前,Google、YouTube开始使用Python开发企业应用。15年前,大数据、机器学习兴起,让Python成了"AI官方语言"。后来,因为简单,它又成为"编程入门第一语言"。

刚开始,Python被程序员所鄙视,原因是它......它......太简单了。普通程序员写三天的代码,Python三句话就实现了。别笑,这种现象在任何行业都存在。试想你将一个料理包扔到热水里,然后完成一盘麻婆豆腐。苦学三年并持有厨师证的大厨说这跟"厨艺"根本不沾边。

Python作为全民第一语言,我6岁的女儿用它做算式。

毕竟,写出来就有答案。

很多白领以及对编程感兴趣的人,也都在使用Python解决一些身边的问题。

比如,你有一个PDF文件,里面有100页,你想删除首尾两页,因为这里面有一些版权信息。又或者你想单摘出来第2部分的内容,因为领导只关心这一部分。

那么,你可以用Python来完成这个任务。甚至你也不用了解代码,去问大模型就行,它会告诉你。

于是,你轻而易举地得到一份没有封面的PDF文件。

效果很好。

你也许写了很多这类小功能,比如:将文件夹内文件批量汇总到Excel中、将发票抬头设为文件名等等。

很多朋友觉得你写的程序很方便,他们也想用。但是,你是在代码编译器中写的,也是在开发环境中运行的。

朋友们想用就意味着他们也需要安装Python环境。这一下子门槛就提高了。虽然你感觉安装很简单,但你是一步步走来的,他们却是0基础。此时,你开始理解程序员,感受到了交流的鸿沟。

你咨询真正的程序员朋友,他们告诉你两条路线。第一,将你的功能发布成SaaS服务(Software as a Service),也就是网页版,让朋友们打开浏览器就可以使用。第二,将你的功能发布为客户端(Client),比如打包成.exe文件,让朋友们下载后双击运行。你考虑了一下,因为SaaS服务需要更多的技术栈,而且需要服务器。因此,对于内部分享的程序,客户端似乎更适合。

于是,下面我们讲一下你的python代码如何打包成.exe文件。打包的方式很多,而且也不局限于windows系统(Mac系统也可以)。我们以windows为例,旨在讲一种方向和实践。

假设我们写了一个pdf.py文件,这是处理pdf文件的代码。我们可以借助PyInstaller这个工具来打包。

首先需要通过pip安装它。打开命令行,输入以下命令:

pip install pyinstaller

然后在命令行执行 pyinstaller --onefile pdf.py

最终执行后会在dist/目录下生成一个pdf.exe文件。点击就可以运行。

也可以进行很多配置,比如设置软件的图标(需要找一个icon.ico文件)。

pyinstaller --onefile --icon=app.ico pdf.py

我利用这个方式,做了一个扫描作文纸并进行识别批阅的.exe文件。

它最终是一个独立的.exe文件,不需要安装Python环境,也不需要配置环境变量,你可以复制给任何人,双击运行即可。

将A4放入扫描仪,点击开始扫描,此时会进行扫描。扫描完成后,会自动进行识别和批阅。

你在开发环境上写的代码,基本都可以打包成客户端程序。

它并不是给你安装了Python环境,而是看看你写的代码都调用了什么模块,把用到的模块都复制出来,然后组成一个小型迷你环境。这就如同python环境是大超市,而你的程序是满足某项最小必需活动的采购。最终它成为一个.exe文件,在使用时,它会解压缩这个文件,然后找到那些模块,再执行你写的脚本。

解释完原理,聪明的你就发现了它的劣势了。

打包时,因为要将用到的库复制成小环境,所以它的体积会很大。40M起步,我的扫描程序是300M。运行时,因为要先解压缩,所以它启动起来很慢,2秒起步,我的扫描程序是5秒才打开。因为,它是在小环境中运行脚本,所以代码很容易被人家看到,容易被窃取。

优势自然也是显而易见的,如同预制菜料理包,方便、高效、稳定。因此,它适用于一些桌面工具、小型AI推理等场景。你不用太担心兼容性,考虑在我电脑上能运行,换别人电脑就不行啦?前面说了,它是组一个独立的环境,别人电脑不行,估计怎么着都不行。

Nuitka是windows下的另一个打包工具,它的打包方式更接近底层。它是将Python先编译为C语言,然后再编译成原生机器码。如此一来,执行速度快,体积也小。如果你追求性能,或者不想将源码泄露(编译成010101了,人类看不懂),可以选择这个工具。但是问题是它打包复杂、编译时间长,兼容难度高(一些依赖库需要支持C)。需要稍微专业的人来操作,否则容易出现问题。

上面讲的都是Windows环境下的Python打包工具,其实Mac系统也可以的。

cx_Freeze是一个跨平台的Python脚本打包工具,能生成运行在Windows、Mac和Linux上的可执行文件。跨平台,很有吸引力,这意味着你写的代码可以发给用Mac电脑的富豪朋友使用了。哦!好像不行,因为它打出来的包,很散,而且很大,富豪不愿意用(除非他找不到替代品)。而且,因为它不像PyInstaller那样会自动复制依赖,需要你手动选择,因此打包难度也很大。最后很可能是你自己放弃用它。

AI发展很快,而且变得越来越普及。小学编程也在部分地区得到了推广。2025年9月1日起,中国将人工智能教育纳入中小学必修课程。我想,在未来很多打工人会用Python解决一些问题,生成可执行文件,有属于自己的程序。这将大大提高他们的工作效率。

相关推荐
程序员爱钓鱼7 小时前
Python编程实战 - 面向对象与进阶语法 - 异常类型与捕获
后端·python·ipython
程序员爱钓鱼7 小时前
Python编程实战 - 面向对象与进阶语法 - 类方法与静态方法
后端·python
永远有缘9 小时前
Java、Python、C# 和 C++ 在函数定义语法上的主要区别
java·c++·python·c#
007php00716 小时前
某游戏大厂 Java 面试题深度解析(四)
java·开发语言·python·面试·职场和发展·golang·php
景彡先生17 小时前
Python pandas数据透视表(pivot_table)详解:从入门到实战,多维数据分析利器
python·数据分析·pandas
Blossom.11818 小时前
把AI“编”进草垫:1KB决策树让宠物垫自己报「如厕记录」
java·人工智能·python·算法·决策树·机器学习·宠物
极客数模18 小时前
2025年(第六届)“大湾区杯”粤港澳金融数学建模竞赛准备!严格遵循要求,拿下大奖!
大数据·python·数学建模·金融·分类·图论·boosting
倔强青铜三18 小时前
苦练Python第73天:玩转对象持久化,pickle模块极速入门
人工智能·python·面试
程序员三藏19 小时前
Postman持久化保存/设置断言详解
自动化测试·软件测试·python·测试工具·职场和发展·接口测试·postman