Sonoma系统手动安装Python3.8后仍显示3.9.6的问题求助
解决Mac Sonoma系统Python版本切换失败问题
问题概况
运行Sonoma系统的Mac,系统自带Python,但学校项目要求Python 3.8或更低版本。通过Homebrew安装Python 3.8后,系统仍显示版本为3.9.6;尝试用pyenv切换版本也未成功,且找不到显示的3.9.6版本。
用户操作步骤
$ brew update $ brew install python@3.8 $ python3 --version Python 3.9.6 $ which python3 /usr/bin/python3 $ which python3.8 /usr/local/bin/python3 $ which python3.9 python3.9 not found $ brew install pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(pyenv init -)"' >> ~/.bash_profile source ~/.bash_profile Restart your shell so the path changes take effect exec "$SHELL" # 以上配置来自其他降级Python的线程 $ pyenv install 3.8 $ pyenv global 3.8 $ python3 --version Python 3.9.6 $ which python3 /usr/bin/python3 $ which python3.8 /usr/local/bin/python3 $ which python3.9 python3.9 not found
解决方案
1. 确认当前Shell类型
Sonoma系统默认使用zsh,而非bash。执行以下命令查看当前Shell:
echo $SHELL
如果输出是/bin/zsh,说明之前配置的~/.bash_profile不会生效,需要修改~/.zshrc。
2. 重新配置pyenv到zsh配置文件
执行以下命令将pyenv配置写入~/.zshrc:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc
3. 生效配置并验证pyenv
执行以下命令让配置生效:
source ~/.zshrc
验证pyenv是否正确加载:
pyenv --version
如果能正常显示版本,说明配置成功。
4. 重新设置Python版本并验证
先确认pyenv已安装的版本:
pyenv versions
然后设置全局版本(建议指定具体小版本,避免歧义):
pyenv global 3.8.18
关闭当前终端窗口,重新打开后验证版本:
python3 --version which python3
此时which python3应该输出$HOME/.pyenv/shims/python3,说明pyenv的shim路径已优先于系统路径。
5. 处理Homebrew安装的Python路径
如果需要直接使用Homebrew的Python 3.8,可以将其路径加入PATH最前面,在~/.zshrc中添加:
export PATH="/usr/local/bin/python3:$PATH"
但更推荐使用pyenv来管理多版本,避免路径冲突。
6. 关于“找不到Python 3.9.6”的说明
系统显示的3.9.6是Sonoma系统自带的Python,它被封装在系统框架中,不会出现在常规的which搜索路径里,所以which python3.9找不到是正常的。可以通过以下命令查看系统自带Python的位置:
ls /System/Library/Frameworks/Python.framework/Versions/
内容的提问来源于stack exchange,提问作者Penny Bas
相关产品推荐
相关产品推荐

