MacOS下pip默认装库至Python3、pip2失效,如何为Python2安装模块
问题根源
当前终端的默认pip命令已经绑定到Python 3.9的解释器,所以安装的模块只会写入Python 3的site-packages路径,同时pip2命令失效导致无法直接调用Python 2对应的包管理工具,最终出现Python 2找不到已装模块的情况。
操作步骤
1. 定位你要使用的Python 2实际路径
- 终端执行
which python2,获取完整执行路径,常见路径包括/usr/bin/python2(Mojave系统自带Python 2.7)或/Library/Frameworks/Python.framework/Versions/2.7/bin/python2(自行安装的Python 2.7) - 执行
python2 --version确认版本匹配你需要使用的环境,避免和其他版本混淆
2. 为Python 2环境配置pip(若pip2失效/未安装)
如果你的Python 2环境还没有对应的pip工具,可直接用系统自带的包引导工具安装:
- 执行
<刚才查到的python2完整路径> -m easy_install pip
举个例子,如果python2路径是/usr/bin/python2,就执行:/usr/bin/python2 -m easy_install pip
执行完成后会自动生成和当前Python 2绑定的pip可执行文件
3. 为Python 2安装目标模块(完全规避版本混淆)
全程不要直接执行裸pip或pip2命令,直接用Python 2解释器调用其绑定的pip模块执行安装,格式为:<刚才查到的python2完整路径> -m pip install <modulename>
举个例子,如果要给路径为/usr/bin/python2的Python 2安装requests模块,就执行:/usr/bin/python2 -m pip install requests
该命令会强制将模块安装到Python 2对应的site-packages目录,不会写入Python 3的路径下。
4. 安装结果校验
- 执行
<python2完整路径> -c "import <modulename>",无报错即说明安装成功 - 可前往Python 2对应的site-packages路径确认文件存在:Mojave自带Python 2.7的路径为
/Library/Python/2.7/lib/python/site-packages,自行安装的Python 2.7路径为/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
额外注意事项
- 后续如果要给Python 2装模块,都优先使用
<python2完整路径> -m pip install的格式,从根源避免和Python 3的环境混淆 - 若安装时出现权限报错,可在命令末尾添加
--user参数,将模块安装到当前用户的Python 2目录下,避免修改系统路径权限
内容的提问来源于stack exchange,提问作者Barbab
相关产品推荐
相关产品推荐

