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

如何列出Python脚本中实际使用的所有包?

检查Python脚本实际使用的第三方包

以下几种方法可以帮你精准找出脚本里实际被调用的包,剔除那些只导入但没用到的:

1. 用静态分析工具自动检测

用pylint或pyflakes

这两个工具能直接扫描脚本,标记出未使用的导入。

  • 安装:pip install pylint(或pip install pyflakes)
  • 运行命令:pylint your_script.py
    针对你的示例脚本,它会输出类似Unused import numpy的提示,剩下的pandas就是实际用到的包。

用autoflake直接清理未使用的导入

这个工具不仅能检测,还能自动移除未使用的导入语句,处理后剩下的导入就是必需的:

  • 安装:pip install autoflake
  • 运行命令:autoflake --remove-all-unused-imports your_script.py
    执行后你的示例脚本会只剩下import pandas as pd这一行导入。

2. 手动排查(适合小型脚本)

把脚本里的导入语句逐个注释掉,然后运行脚本:

  • 如果脚本正常运行,说明这个包没被使用;
  • 如果脚本报错(比如NameError: name 'pd' is not defined),说明这个包是实际用到的。
    像你的示例,注释掉import numpy as np后脚本能正常执行,就说明numpy没被使用。

3. 用AST模块自定义检查脚本

如果你想自己实现逻辑,可以用Python内置的ast模块解析脚本的抽象语法树,对比导入的包和实际引用的名称:

import ast
import sys

def get_used_packages(script_path):
    with open(script_path, 'r', encoding='utf-8') as f:
        tree = ast.parse(f.read())
    
    # 收集所有导入的包及其别名
    imported = {}
    for node in ast.walk(tree):
        if isinstance(node, ast.Import):
            for alias in node.names:
                imported[alias.name.split('.')[0]] = alias.asname or alias.name
        elif isinstance(node, ast.ImportFrom):
            if node.module:
                imported[node.module.split('.')[0]] = node.module
    
    # 收集所有被引用的名称
    used_names = set()
    for node in ast.walk(tree):
        if isinstance(node, ast.Name):
            used_names.add(node.id)
    
    # 匹配实际使用的包
    used_packages = set()
    for pkg, alias in imported.items():
        if alias in used_names:
            used_packages.add(pkg)
    
    return used_packages

if __name__ == '__main__':
    if len(sys.argv) != 2:
        print("Usage: python check_used_pkgs.py your_script.py")
        sys.exit(1)
    used = get_used_packages(sys.argv[1])
    print("实际使用的包:", used)

运行这个脚本,传入你的目标脚本路径,就能得到类似实际使用的包: {'pandas'}的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:50:59