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

如何自动检测未使用代码并构建仅含推理功能的轻量Python Wheel?

可行的工具方案

你可以结合以下现成工具实现需求,无需自行开发复杂分析逻辑:

1. Coverage.py(运行时依赖分析)

这是最实用的方案,通过运行目标函数追踪实际用到的代码:

  • 安装后,编写简单测试脚本调用需保留的5个推理相关函数
  • 执行coverage run your_test_script.py,追踪所有被执行的代码文件
  • 用coverage report查看必要文件列表,基于此修改setup.py或MANIFEST.in,只保留这些文件,排除训练、测试等无关模块

2. Autoflake/Pycln(清理无用代码)

在保留的文件中自动移除未使用的导入、变量和函数:

  • 对目标文件执行autoflake --remove-all-unused-imports --in-place your_module.py
  • 或用pycln your_module.py,精准清理未使用的导入与局部变量

3. Deadcode(进一步精简代码)

识别保留文件中未被调用的函数、类和变量,完成最后一步精简:

  • 执行deadcode --exclude=tests,training your_package/,输出所有未使用的代码元素,批量或手动移除冗余内容

4. Modulegraph(静态依赖分析)

若不想运行代码,可使用PyInstaller底层的静态分析工具:

  • 安装后,编写几行简单代码分析目标函数的依赖模块:
from modulegraph import modulegraph

mg = modulegraph.ModuleGraph()
mg.run_script("path/to/your_target_functions.py")
# 导出所有依赖的模块路径
for node in mg.flatten():
    if hasattr(node, 'filename'):
        print(node.filename)
  • 基于输出的文件列表筛选需保留的代码

这些工具组合使用,能自动化完成从指定目标函数到生成极简Wheel包的流程,比手动用sed更可靠,代码变更后只需重新运行分析即可更新包内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 18:55:31