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

如何获取Anaconda环境中实际使用的包列表而非全部已安装包

如何获取Anaconda环境中项目实际使用的包列表

要实现只提取项目真实用到的包、排除安装但未使用的依赖,核心逻辑是扫描项目所有代码文件的导入语句,再和当前conda环境的已安装包做匹配过滤,可通过以下两种方式实现:

方法1:使用pipreqs工具(操作最简便)

  • 首先激活你要查询的目标conda环境,安装pipreqs工具:pip install pipreqs
  • 切换到你的项目根目录,执行扫描命令:pipreqs ./ --encoding=utf8
  • 命令执行完成后,项目根目录会生成requirements.txt文件,里面仅包含项目代码中实际导入过的包,你安装后从未使用的包(比如示例中安装了但未导入的matplotlib)不会出现在列表中
  • 如果你需要导出适配conda格式的带版本号的包列表,可执行以下命令做二次过滤:
    conda list --export | grep -F -f requirements.txt > conda_used_packages.txt
    

方法2:手动扫描匹配(无需安装额外工具)

如果不想安装第三方工具,可以直接通过命令行扫描代码的导入语句,再和conda已安装包做比对:

  • 第一步:扫描项目内所有Python文件的导入语句,提取用到的包名去重后保存:
    # Linux/macOS 环境下执行,Windows可使用WSL或PowerShell等效命令
    grep -r "^import\|^from" ./ --include="*.py" | awk '{print $2}' | cut -d. -f1 | sort | uniq > used_imports.txt
    
  • 第二步:导出当前conda环境所有已安装的包名:
    conda list | awk '{print $1}' > all_installed.txt
    
  • 第三步:匹配两个文件的交集,输出的结果就是环境中实际被项目使用的包:
    grep -F -f used_imports.txt all_installed.txt
    

注意事项

  • 上述两种方法仅能识别import/from ... import格式的显式导入,无法识别通过__import__()、importlib等方式实现的动态导入依赖,这类依赖需要你手动补充到列表中
  • 部分Python包的安装名和导入名不一致(例如安装名为python-dateutil、导入名为dateutil;安装名为opencv-python、导入名为cv2),如果出现匹配遗漏的情况,需要你手动核对修正

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 09:45:07