如何在M1 Mac上正确配置Python与pip?
问题根源
你遇到的核心问题是系统中多个Python版本共存,且pip工具与你调用的python3版本不匹配:
- 当前使用的
python3是系统/Xcode自带的3.9版本(对应/usr/bin/python3,site-packages路径也属于3.9) pip3属于单独安装的Python 3.10(/Library/Frameworks/Python.framework/Versions/3.10/bin/pip3)pip属于Homebrew安装的Python版本(/opt/homebrew/bin/pip)
这种版本错位导致用pip3或pip安装的包,会被放到对应版本的site-packages目录,自然无法被你正在使用的Python 3.9识别。
解决方案
1. 直接使用对应版本的pip安装(快速解决)
不要直接调用pip或pip3,而是通过当前Python解释器来调用pip,确保版本完全匹配:
# 替换成你要安装的包名 python3 -m pip install 你的包名
python3 -m pip会自动关联当前运行的python3对应的pip工具,安装的包会直接进入/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages,就能被正常识别。
2. 用pyenv统一管理Python版本(彻底解决版本混乱)
如果不想每次手动对应版本,可以用pyenv统一管理系统中的所有Python版本,避免路径和版本冲突:
安装pyenv
brew install pyenv
配置Shell环境(zsh用户用/.zshrc,bash用户替换为/.bash_profile)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc
重启终端后验证配置:
pyenv --version
安装并设置默认Python版本
比如安装你需要的3.9版本:
pyenv install 3.9.18
设置为全局默认版本:
pyenv global 3.9.18
之后python3和pip3都会统一指向这个版本,不会再出现版本不匹配的问题。
3. 清理多余的pip路径(可选)
如果不需要系统中多余的Python版本,可以检查Shell配置文件(/.zshrc或/.bash_profile),调整PATH环境变量的顺序,将常用的Python路径放在最前面,或者移除不需要的路径(比如/Library/Frameworks/Python.framework/Versions/3.10/bin),避免误调用错误版本的pip。
内容的提问来源于stack exchange,提问作者Kori V
相关产品推荐
相关产品推荐

