MacOS下无法通过Homebrew将Python 3.6升级至3.7求助
我来帮你捋捋这个问题——你已经通过Homebrew成功安装了Python3.7,但系统调用python3时还是指向旧的3.6.5,大概率是Shell的PATH环境变量优先级搞的鬼:旧版本的Python路径排在Homebrew安装路径前面,导致系统先找到旧版本。
下面是具体的排查和解决步骤:
1. 先确认所有Python3的安装路径
执行这条命令,列出系统中所有叫python3的可执行文件:
which -a python3
正常情况下,Homebrew安装的Python3.7应该在/usr/local/bin/python3(Intel芯片Mac)或者/opt/homebrew/bin/python3(Apple Silicon芯片Mac),而旧的3.6可能在/usr/bin/python3(系统自带)或者其他旧路径。
2. 检查当前PATH的顺序
PATH决定了系统查找可执行文件的优先级,执行这条命令查看当前配置:
echo $PATH
你需要确保Homebrew的bin目录(/usr/local/bin或/opt/homebrew/bin)排在/usr/bin前面——这样系统才会优先用Homebrew安装的程序。
3. 调整PATH优先级(核心步骤)
根据你用的Shell类型,修改对应的配置文件:
如果你用的是zsh(Mac默认Shell):
打开~/.zshrc文件(用文本编辑器或者nano ~/.zshrc),添加或修改这一行:# Intel芯片Mac export PATH="/usr/local/bin:$PATH" # Apple Silicon芯片Mac export PATH="/opt/homebrew/bin:$PATH"保存后执行这条命令刷新配置:
source ~/.zshrc如果你用的是bash:
打开~/.bash_profile或~/.bashrc文件,添加同样的PATH配置,然后执行:source ~/.bash_profile
4. 验证结果
先确认python3的指向:
which python3
如果输出是Homebrew的路径(比如/usr/local/bin/python3),再执行版本检查:
python3 --version
这时候应该就显示3.7.x了。
额外排查:有没有其他版本管理工具干扰?
如果你之前用过pyenv这类Python版本管理工具,它也会覆盖PATH优先级。这种情况下,你需要用pyenv的命令切换版本:
pyenv global 3.7.5
内容的提问来源于stack exchange,提问作者I'm Root James

