MacOS M1下Python与Pip路径不一致导致模块问题求助
解决MacOS M1上Python模块找不到但已安装的问题
问题核心:你当前调用的python3是系统自带版本(路径/usr/bin/python3),而pip/pip3是Homebrew安装的版本(路径/opt/homebrew/bin),两者属于完全独立的Python环境,导致pip安装的模块无法被系统Python识别。
以下是几种可行的解决方案:
方案1:使用Homebrew的Python执行代码
- 直接用Homebrew Python的完整路径运行脚本:
/opt/homebrew/bin/python3 your_script.py - 或者调整系统PATH优先级,让Homebrew的Python成为默认:
- 编辑Shell配置文件(M1默认是
~/.zshrc):nano ~/.zshrc - 添加以下内容并保存:
export PATH="/opt/homebrew/bin:$PATH" - 使配置生效:
source ~/.zshrc
which python3会显示/opt/homebrew/bin/python3,此时python3和pip3属于同一环境,安装的模块能正常被调用。 - 编辑Shell配置文件(M1默认是
方案2:给系统Python安装专属pip
- 先给系统自带的Python3安装pip:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py /usr/bin/python3 get-pip.py - 之后用系统专属的pip安装模块:
这样安装的模块会被系统Python识别。/usr/bin/pip3 install <你的模块名>
方案3:使用虚拟环境隔离(推荐)
虚拟环境可以彻底避免多Python版本的环境冲突:
- 用系统Python创建虚拟环境:
/usr/bin/python3 -m venv my_project_env - 或者用Homebrew Python创建:
/opt/homebrew/bin/python3 -m venv my_project_env - 激活虚拟环境:
source my_project_env/bin/activate - 激活后,
python和pip均指向当前虚拟环境,安装模块后直接运行代码即可。退出虚拟环境执行deactivate。
内容的提问来源于stack exchange,提问作者Turqay Umudzade
相关产品推荐
相关产品推荐

