闻道有先后,术业有专攻。
各位大佬好!
~我依旧是你们的老朋友摸鱼~
在职场摸爬滚打的这十多年里,我用Python悄悄干了不少“正事”——不知不觉攒下了一整套办公自动化的实用项目技巧。去年10月初创立了公众号 「码海听潮」 ,初衷很简单:把重复的劳动交给代码,把摸鱼的时间留给生活。
目前已经吭哧吭哧更新了90多篇原创文章,每一篇都是实操干货,不讲虚的,只聊怎么用代码真正解放双手,帮大家早点下班、准点摸鱼
昨天有一个神秘的粉丝问我,python有没有既能保护核心代码,又能打包成独立exe的方法?我的答案是:Cython + PyInstaller。废话不多说,下面我用一个简单的示例,带你快手入手!
实例:用Cython + PyInstaller加密打包excel2pdf.py的python文件
需求的py文件如下图:
确保已安装 Visual C++ 编译工具(Windows)或 GCC(Linux/macOS),否则 Cython 编译会报错。
第二步:编写 Cython 编译脚本
filename="excel2pdf.py" print("--------------------------------------")print(" python setup.py build_ext --inplace")print("--------------------------------------")import sysfrom distutils.core import setupfrom distutils.extension import Extensionfrom Cython.Distutils import build_extfrom setuptools import setupfrom setuptools.extension import Extensionfrom Cython.Build import cythonizeefile=filename.split('.')[0] setup(cmdclass={'build_ext': build_ext}, ext_modules=cythonize( [Extension("%s" % efile, ["%s" % filename])], compiler_directives={'language_level': 3}) )
第三步:执行编译
编译后的文件生成在 `build` 文件夹的同一目录中,意味着在使用 Cython 编译 Python 文件时,Cython 会将Python代码转换为 C 代码,并生成相应的共享库文件(通常是 `.so` 或 `.pyd` 文件,具体取决于操作系统, windows系统是.pyd文件)。这个文件是编译后的版本,包含了你的代码,但不再是原始的 Python 源代码。
py现在变成了一个pyd文件,还有一个c文件,可以把它理解成一个包,跟py的包一样去调用就行了。可以新建一个main.py文件。调用编译后的文件,同时必须也导入excel2pdf.py中要导入的三方库
pyinstaller --noconsole -F main.py
❓ 这种方案能100%防止反编译吗?
至此,一个简单的加密exe就这样完成了! 🎉
回顾一下整个流程:
大佬们也可以举一反三,参照上面的代码思路根据自己工作中的实际情况来具体问题具体分析,实现自己定制化的需求。
当Python遇见办公,牛马打工人终于笑出了猪叫声
【职场人必看】每天早上一睁眼,想到又要面对:
1.📊 堆积如山的Excel表格
2.📑 机械重复的复制粘贴
3.✍️ 永远改不完的各类文档
4.诸如此类的更多........
是不是连Ctrl+Alt+Delete的心都有了?
别慌!别急,摸鱼这位“职场外挂”已经带着Python代码来拯救你了!
另外,《码海听潮》公众号所有文章码和exe程序已打包好上传绿联nas私有云,有需要的大佬扫一扫上面博主的个人微信二维码,需要的大佬需支付9.9元永久拥有公众号资源(写原创干货费时费力,属实不易),邀请您进入社区群获取下载链接!!,群内提供python办公自动化交流问题,解决问题,且码海听潮微信公众号文章发布会第一时间会更新到群里,非诚勿扰哈!