You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pyarmor递归混淆失效:仅处理主文件未混淆依赖模块foo.py

解决Pyarmor递归混淆未处理依赖模块的问题

问题原因

pyarmor gen -r的-r参数是针对目录的递归处理,如果你仅指定单个文件(如main.py),Pyarmor只会混淆该文件,不会自动分析并处理它依赖的其他模块(比如foo.py),这就是运行dist目录下的混淆文件时出现ModuleNotFoundError的原因。

解决方案

针对你的最简场景,有两种直接有效的处理方式:

方式1:直接指定所有需要混淆的文件

执行命令时同时列出main.py和foo.py:

pyarmor gen main.py foo.py

执行后,dist目录会同时生成混淆后的main.py和foo.py,运行dist下的main.py即可正常调用foo.test()。

方式2:递归处理整个目录

如果后续有更多文件需要混淆,直接以当前目录为目标执行递归混淆:

pyarmor gen -r .

该命令会递归处理当前目录下所有Python文件,自动将main.py、foo.py及其他py文件都混淆到dist目录中。

验证

进入dist目录,运行混淆后的文件:

python main.py

此时应该正常输出test。

内容的提问来源于stack exchange,提问作者clang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 00:32:35