mac系统查看所有安装的Python版本

新建一个脚本文件check-python.sh: 输入:

js 复制代码
#!/bin/zsh

echo "🔍 检测系统中所有已安装的 Python 版本...\n"

# 存储结果
declare -a results=()

# 辅助函数:检查单个路径
check_python() {
    local path="$1"
    if [[ -f "$path" && -x "$path" ]]; then
        version=$("$path" --version 2>&1)
        if [[ $? -eq 0 ]]; then
            # 避免重复
            for r in "${results[@]}"; do
                if [[ "$r" == *"$path"* ]]; then
                    return
                fi
            done
            results+=("$version → $path")
        fi
    fi
}

# === 1. 系统自带 Python ===
check_python "/usr/bin/python3"
for v in /usr/bin/python3.[0-9]*; do
    [[ -f "$v" ]] && check_python "$v"
done

# === 2. Python.org 官方安装 ===
if [[ -d "/Library/Frameworks/Python.framework/Versions/" ]]; then
    for d in /Library/Frameworks/Python.framework/Versions/*; do
        if [[ -d "$d" && "$d" != *.pkg ]]; then
            bin_path="$d/bin/python3"
            check_python "$bin_path"
        fi
    done
fi

# === 3. Anaconda / Miniconda ===
[[ -f "$HOME/anaconda3/bin/python3" ]] && check_python "$HOME/anaconda3/bin/python3"
[[ -f "$HOME/miniconda3/bin/python3" ]] && check_python "$HOME/miniconda3/bin/python3"

# === 4. Homebrew (Intel: /usr/local, Apple Silicon: /opt/homebrew) ===
for brew_prefix in /opt/homebrew /usr/local; do
    if [[ -d "$brew_prefix/bin" ]]; then
        for p in "$brew_prefix"/bin/python3 "$brew_prefix"/bin/python3.[0-9]*; do
            [[ -f "$p" ]] && check_python "$p"
        done
    fi
done

# === 5. pyenv(可选)===
if [[ -d "$HOME/.pyenv/versions" ]]; then
    for v in "$HOME"/.pyenv/versions/*; do
        if [[ -d "$v" ]]; then
            py="$v/bin/python"
            [[ -f "$py" ]] && check_python "$py"
        fi
    done
fi

# === 输出结果 ===
if [[ ${#results} -gt 0 ]]; then
    echo "✅ 找到以下 Python 安装:"
    # 排序输出(按版本号大致排序)
    printf '%s\n' "${results[@]}" | sort -V
else
    echo "❌ 未找到任何 Python 安装。"
fi

echo ""

# === 当前默认 python3 ===
echo "📌 当前终端使用的 python3:"
if command -v python3 &>/dev/null; then
    current_path=$(which python3)
    current_version=$(python3 --version 2>&1)
    echo "  • $current_version → $current_path"
else
    echo "  ❌ python3 命令不可用"
fi

执行脚本:

js 复制代码
sh 路径/check-python.sh
相关推荐
evans在进步10 分钟前
LeetCode 33:搜索旋转排序数组——Java 两阶段二分查找详解
java·python·leetcode
言乐643 分钟前
Python游戏水平测试辅助系统2
开发语言·windows·python·游戏·django
jerryinwuhan2 小时前
《Python数据预处理》第四章
开发语言·python
雨晨源码(同名B站)2 小时前
基于Python的网易云音乐评论数据情感化分析系统 音乐爬虫信息可视化 |SnowNLP评论情感分析
开发语言·hadoop·爬虫·python·信息可视化·毕业设计
阿童木写作2 小时前
跨境电商图片翻译工具推荐:跨马翻译批量处理视频字幕与抠图
python·音视频
怪奇云呼军3 小时前
G.711、Opus 和重采样会拖慢识别吗?闪电智能VoiceAgent 的音频入口怎么选
java·人工智能·python·算法·云计算·音视频
ZC跨境爬虫4 小时前
LeetCode 27. 移除元素(双指针详解 + Java Python 多解法对比)
java·python·leetcode
Patrick在香港4 小时前
Python正则表达式实战:解析和验证香港身份证、车牌、电话格式
开发语言·python·正则表达式
路溪非溪4 小时前
Python语言的执行流程总结
开发语言·python
宋均浩4 小时前
AI 生成代码质量防线实战:5 个 CI/CD 配置,把 8% 的逻辑错拦在线上之前0
python