前言
Python 脚本程序加密推荐。
编译成 .pyc 文件
.pyc 文件是 Python 源码文件 (.py) 编译后的二进制文件,能提高加载速度,但容易反编译暴露源码。
命令:
python -m py_compile example.py
项目里有一堆 Python 文件,可以用 compileall 模块,直接批量编译:
python -m compileall <your_directory>
编译成可执行文件
PyInstaller
PyInstaller 主要用于将Python代码打包成可执行文件,这样用户无需安装Python解释器即可运行应用程序。PyInstaller会将Python代码和依赖项打包成一个独立的可执行文件,适合发布和分发给终端用户。
优点:支持多平台,打包后的程序体积较小,且不需要额外安装Python解释器。
缺点:在某些情况下,打包后的程序可能无法正确识别Python依赖项,导致程序运行出错。
pyinstaller -F demo.py # -F 表示打包成单个文件
pyinstaller -F -w demo.py # -w 关掉控制台窗口
pyinstaller -F -i test.ico demo.py # -i 增加图标
Nuitka
Nuitka 可以把 Python 源码转换成 C++,然后再编译成二进制文件。Nuitka 打包的速度相对比较慢,而且生成的文件会比 PyInstaller 打包出来的更大。
nuitka --mingw64 demo.py
nuitka --mingw64 --standalone --output-dir=out demo.py # 打包成独立的可执行文件
PyArmor
一款专门用来加密和保护 Python 脚本的工具,支持动态加密和解密,可设置代码的有效期,还可以绑定到特定的硬件设备。
加密 Python 脚本
pyarmor encrypt --output=encrypted_demo.py original_demo.py
生成可执行文件
pyarmor pack --output=packed_demo.exe original_demo.py
设置授权管理规则
pyarmor licenses --expired=1024-10-24