做CAE二次开发,很多人会写大量Python自动化工具,源码直接交付容易泄露核心逻辑,因此不少工程师会使用PyArmor对脚本加密混淆。
一、PyArmor是什么?有什么作用
PyArmor是业界常用的Python源码加密工具,核心作用是保护脚本代码:
加密原理简单说:加密脚本运行时需要加载配套的pyarmor_runtime动态库完成解密,标准CPython环境可以正常加载依赖、完成解密执行流程。
二、关键踩坑:加密脚本无法在HyperMesh中运行
很多人加密完成后,在VS Code单独运行完全正常,但把加密脚本载入HyperMesh执行,直接报错、无法启动,原因就是:经过PyArmor加密后的py脚本,仅支持独立Python环境,不兼容HyperMesh内嵌Python解释器。
还记得当时不知道这个问题,调试代码,调试编码格式,打包方式,搞了好久,就是不行,核心就是不支持PyArmor加密后的py脚本