查询 conda + pip 装的包
查询某个包被安装在哪个conda环境中,同时查询conda自己安装和pip安装的包:
bash
PACKAGE=transformers # 要查找的包名,自己改
conda env list | awk 'NF>=2 && !/^#/{print $2}' | while read -r env_path; do
echo "=== $env_path ==="
# 1) 先看 conda 侧
conda list -p "$env_path" 2>/dev/null | grep -i "^${PACKAGE}\|^# Name" && continue
# 2) 再看 pip 侧(路径存在才执行)
py_exe="$env_path/bin/python"
if [[ -x "$py_exe" ]]; then
"$py_exe" -m pip list 2>/dev/null | grep -i "^${PACKAGE}"
fi
done
脚本要点
1. awk 'NF>=2 && !/^#/{print $2}' 只拿路径列。
2. 用 conda list -p 路径 而不是 -n 名字,就不会再报"字符不合法"。
3. 用 -x 判断 Python 可执行文件是否存在,避免"没有那个文件或目录"的提示。
4. 所有 2>/dev/null 把 conda/pip 的警告静默掉,输出更干净。
运行之后,可以看到: