如果你已经用那 200 行脚本清理了 4 大“血统”,却发现终端里仍然能 which python 到一个 不在任何已知目录 的解释器,那么恭喜——你踩中了第 5 种安装方式:
Xcode Command Line Tools 的幽灵 Python
1. 幽灵现身
在 macOS 13+ 中,Apple 把一份 精简版 Python3 藏进了
/Library/Developer/CommandLineTools/usr/bin/python3
它不出现在 brew list、pyenv versions、ls /Library/Frameworks 的任何输出里,却 优先级高于 Homebrew 的 python3,直接劫持你的 PATH:
$ which python3
/Library/Developer/CommandLineTools/usr/bin/python3 # ???
$ python3 -V
Python 3.9.6 # 鬼故事开始
2. 为什么删不掉
- 它是 Xcode CLI 的依赖,删掉会导致
git、gcc、clang全部罢工。 - 每次系统更新或
xcode-select --install都会 自动重装。 - 路径里带空格,99% 的脚本匹配不到,于是成了“漏网之鱼”。
3. 三行命令定位幽灵
把下面函数贴进终端:
ghost_python() {
for p in $(which -a python3); do
[[ "$p" == *"CommandLineTools"* ]] && echo "👻 幽灵环境:$p"
done
}
运行结果:
👻 幽灵环境:/Library/Developer/CommandLineTools/usr/bin/python3
4. 安全驱逐方案
不要删! 用 Apple 官方允许的方式“降级”优先级即可:
# 1. 让 Homebrew 的 python3 永远排在幽灵之前
echo 'export PATH="/opt/homebrew/opt/python@3.11/bin:$PATH"' >> ~/.zshrc
# 2. 立即生效
source ~/.zshrc
# 3. 验证
$ which python3
/opt/homebrew/opt/python@3.11/bin/python3 # ✅ 夺回控制权
5. 一键脚本更新
我已把上面逻辑追加到你的 :
# 新增:幽灵环境检测 + 优先级修复
if [[ -x "/Library/Developer/CommandLineTools/usr/bin/python3" ]]; then
echo "⚠️ 检测到 Xcode 幽灵 Python,已为你自动提升 Homebrew 优先级"
ghost_python # 调用上面的函数
fi
保存后执行:
chmod +x pythonRemover.sh && ./pythonRemover.sh
6. 彩蛋:入群暗号升级
QQ 群 1059593606 的验证答案,私信我领取验证码后输码进群,进群后 @群主 领取更新版脚本。
评论区留给你:
你还遇到过哪些“删不掉”的 Python?留言+暗号,我统一拉群答疑。
要完整代码的也在群中说哦qwq(知乎私信我也行)