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

Python混淆代码转exe遇PyInstaller导入识别问题求解决方案

解决混淆后PyInstaller无法识别依赖的问题

可以通过手动指定依赖库和模块的方式让PyInstaller正常打包混淆后的脚本,具体步骤如下:

1. 命令行参数直接指定依赖

  • 使用--hidden-import参数添加PyInstaller未识别到的第三方库或自定义模块,示例:
    pyinstaller --hidden-import requests --hidden-import your_custom_module main_obfuscated.py
    
  • 若需包含自定义混淆后的.py文件,用--add-data参数(Windows用;分隔路径,Linux/macOS用:):
    # Windows示例
    pyinstaller --add-data "utils_obfuscated.py;." main_obfuscated.py
    # Linux/macOS示例
    pyinstaller --add-data "utils_obfuscated.py:." main_obfuscated.py
    

2. 生成并编辑.spec文件(更灵活的方案)

  • 先生成基础.spec文件:
    pyinstaller main_obfuscated.py
    
  • 打开生成的.spec文件,修改以下配置:
    • 在hiddenimports列表中补充所有缺失的依赖:
      hiddenimports=['requests', 'your_custom_module', 'another_obfuscated_module'],
      
    • 在datas列表中添加需要打包的自定义混淆后文件:
      datas=[('utils_obfuscated.py', '.'), ('config_obfuscated.py', '.')],
      
  • 用修改后的.spec文件重新打包:
    pyinstaller main_obfuscated.spec
    

3. 调整混淆强度避免干扰分析

部分混淆工具会重命名模块名、导入语句,导致PyInstaller静态分析失效。若上述方法无效,建议调整PyObfuscate的混淆配置,保留模块名称和导入语句的原始结构,仅对代码逻辑部分进行混淆。

4. 排错技巧

  • 运行exe时若出现缺失模块错误,根据报错信息补充对应的hiddenimports;
  • 使用--debug=imports参数查看导入追踪日志,定位未被识别的依赖:
    pyinstaller --debug=imports main_obfuscated.py
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:31:01