全部对比

MagicLock vs PyInstaller——保护 vs 打包,以及两者并用

一份事实对比:PyInstaller 解决的是分发,不是保护。MagicLock 产物无论去到哪里都保持加密——而且两个工具可以很好地组合。

PyInstaller 是把 Python 应用变成单个可执行文件的标准做法,用户不用安装 Python 就能运行。它成熟、免费,并且非常擅长这件事。它也明白地说了自己不是什么:不是保护工具。本页存在的原因,一是两者经常被混为一谈,二是它们实际上可以很好地搭配使用

PyInstaller 做得好的地方

  • 单文件 / 单目录分发,解释器一并打包——经典的"直接发个 .exe 过去"的答案。
  • 广泛的生态支持、针对麻烦包的 hook 机制、跨平台的成熟度。
  • 免费且开源。

打包不是保护

PyInstaller 的产物是一个归档:应用的 .pyc 字节码就装在里面,随手可得的工具几分钟内就能把它解包回字节码(再从字节码还原成相当可读的源码)。这不是缺陷——PyInstaller 从来不是为保守秘密而设计的,它的文档也没有做过这种声称。但这意味着,打包后的应用提供的保护和直接发 .py 文件大致相当。

MagicLock 的产物无论文件去到哪里都保持加密:在 PyInstaller 包里、在 U 盘上、在客户的备份里。只有在你授权过的设备上它们才会变成一个运行中的程序,且每次运行都完全离线校验。

并排对比

能力MagicLockPyInstaller
给最终用户的单文件可执行程序编译强档:独立构建是——正是其设计目标
打包解释器编译强档:是
能否从发出的文件还原源码/字节码不能——加密(.pya)或每模块带闸门的原生代码能——归档可解包出 .pyc
设备绑定授权内置——(非其目标)
模型 / 资源加密按设备信封明文打包
有效期、试用、云控开关
价格商业收费免费、开源

基于截至下方日期的公开文档。

一起用更好

两个工具解决的是不同的层,而且组合起来很干净:

  1. magiclock protect 保护你的模块、magiclock protect-model 保护你的权重——这是保护层。
  2. 照常用 PyInstaller 打包受保护的应用——这是分发层。

打出来的包保留 PyInstaller 的便利;里面的代码和模型保留 MagicLock 的加密与设备绑定。或者,magiclock build --standalone 一步产出自含的原生应用目录——一条命令同时得到保护与分发。

什么时候单用 PyInstaller 就够了

  • 你需要的是轻松分发,并且没有任何保护或授权需求——内部工具、免费软件、可信环境。

什么时候该加上 MagicLock

  • 当"谁都能解包"开始成为一个商业问题的那一刻:付费软件、按席位授权、专有模型、会到期的试点。

看看保护是如何工作的,或在定价页免费试用完整流程 48 小时。

事实核对于 2026-08

产品名称与商标归各自所有者所有。对比基于公开文档;能力因版本与授权类型而异,请以各厂商官方资料为准。