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

如何从pyarmor加密的Python文件中导入函数?有无替代加密工具?

PyArmor导入问题解决方案

你遇到的导入失败并非PyArmor不支持外部导入,而是配置和打包流程错误导致,按以下步骤操作即可解决:

  • 加密时添加解除导入限制的参数,执行命令:pyarmor obfuscate --restrict=0 addCode.py,PyArmor默认的限制模式会禁止外部模块导入加密后的内容,--restrict=0会关闭该限制,仅保留代码混淆效果,符合你对普通用户隐藏源码的需求
  • 加密完成后,输出目录dist内会包含加密后的addCode.py和pytransform运行时文件夹,必须将二者同时放入你的PyPI包根目录,仅上传加密后的py文件会缺失运行时依赖,导致模块加载失败
  • 上传到PyPI前先在本地测试:进入dist目录执行from addCode import add,确认可正常调用后再执行打包上传操作,操作完成后用户侧不需要修改任何导入语句,可直接按原来的用法调用
替代混淆方案

如果不想使用PyArmor,也可以选择以下两种轻量方案,均支持正常导入且运行无报错:

  • 编译为pyc字节码:执行命令python -m compileall addCode.py,将生成的__pycache__目录内对应pyc文件移动到包根目录,重命名为addCode.pyc,打包时删除所有.py源码仅保留pyc文件即可,普通用户无法直接读取pyc明文,适配对应Python大版本即可正常运行
  • 编译为C扩展:使用Cython将Python代码编译为对应系统的二进制扩展文件(Linux/macOS为.so,Windows为.pyd),不仅完全隐藏源码,还能提升运行效率,打包时按不同系统架构上传wheel包,用户安装后可直接正常导入函数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:15:04