OSX系统中Python未找到但Python3可用,如何复用pip安装的包?
问题描述
在OSX系统中,我无法找到Python,但Python3可以正常使用。不过我的pip包均已通过pip而非pip3安装,不清楚具体安装方式。请问如何无需通过pip3重新安装,就能让Python3使用这些pip包?我认为Python3是通过brew安装的。
用户提供的brew list输出:
% brew list ==> Formulae autoconf kubernetes-cli mpdecimal python@3.10 virtualenv ca-certificates libidn2 openssl@1.1 readline wget gdbm libunistring pkg-config six xz gettext m4 pyenv sqlite ==> Casks mysqlworkbench virtualbox vagrant visual-studio-code
解决方案
步骤1:定位pip对应的包安装目录
- 确认当前
pip关联的Python版本:
输出会显示类似pip --versionpip 20.2.4 from /Library/Python/2.7/site-packages/pip (python 2.7)的内容,同目录的site-packages就是包的存放位置。 - 也可以通过已安装包确认路径:
找到输出里的pip show requests # 替换成你用pip装过的任意包名Location字段,这就是所有pip安装包的目录。
步骤2:让Python3识别这个包目录
- 查看Python3的site-packages路径:
会得到类似python3 -c "import site; print(site.getsitepackages())"['/usr/local/lib/python3.10/site-packages']的路径(对应brew安装的python@3.10)。 - 在该路径下创建
.pth文件:touch /usr/local/lib/python3.10/site-packages/legacy-packages.pth - 用文本编辑器打开这个文件,把步骤1找到的
pip包目录路径写入并保存。比如包目录是/Library/Python/2.7/site-packages,文件内容就一行这个路径。
步骤3:验证是否生效
运行Python3尝试导入之前用pip装的包:
python3 -c "import requests" # 替换成你的包名
无报错则说明已生效。
额外说明
- 部分Python2的包可能不兼容Python3,即使添加路径也会报错,这种情况仍需重新安装兼容版本。
- 如果你用了
pyenv,可以先运行pyenv versions查看是否有其他Python版本激活,之前的pip可能关联该版本,直接切换版本或复制包目录到Python3的site-packages也可行,但.pth方法更灵活。
内容的提问来源于stack exchange,提问作者er24rf4f
相关产品推荐
相关产品推荐

