关于Python中pip默认指向的Python版本问题
想在 python2.7 中安装一个 tensorflow 的包,然而发现最近输入 pip ,会直接把这个包安装到 python3 中
请问如何把 pip 默认的 python 版本改到 python2.7 里面啊?
小白求助
关于Python中pip默认指向的Python版本问题
Python 2.7 -> pip2 install
Python 3 -> pip3 install
这个问题很常见,通常是因为系统里装了多个Python版本,而pip命令没有绑定到你期望的那个Python上。
简单来说,pip只是一个脚本,它安装时会自动关联到调用它的那个Python解释器。你系统里可能有python、python3、python3.11等多个命令,每个命令都可能对应一个独立的pip。
如何检查和解决?
最直接的方法是使用对应Python解释器的 -m 参数来调用pip。这是最可靠、最推荐的方式。
-
首先,确认你当前使用的是哪个Python和pip:
# 查看默认python命令的版本和路径 python --version which python # 查看默认pip命令关联的Python pip --version # 输出第一行会显示类似 "pip 23.0.1 from /usr/local/lib/python3.11/site-packages/pip (python 3.11)" # 注意最后的 (python 3.11) 就是它关联的版本。 -
使用特定Python版本运行pip(推荐方法): 假设你想为
python3.11安装包,不要直接运行pip install,而是运行:python3.11 -m pip install package_name这样就能确保包被安装到
python3.11的site-packages目录下,万无一失。 -
如果你想为特定版本创建独立的
pip命令别名(可选): 可以在你的shell配置文件(如~/.bashrc或~/.zshrc)里添加别名:alias pip311='python3.11 -m pip'保存后执行
source ~/.bashrc,之后就可以用pip311 install package_name了。
总结一下: 别纠结pip命令本身指向谁,直接用 pythonX.Y -m pip 来调用,这是最清晰、最不容易出错的做法。
vim which pip -> 修改第一行指向的 python
忘记说了,我用的不是 vim ,是直接在 terminal 上运行的。。。
感谢两位的帮助,不知为何现在又恢复正常了。。。解决方案:把 terminal 关掉,再打开,重复两次就又恢复回去了。。。。感觉这个问题可能和我尝试了一下 sudo easy_install -U pip 有关。。。虽然还是不懂为什么。。。。
… 你大概没理解意思
pip 本身就是个 python script 然后给了 x 权限而已
$ pip -V # 看看使用的 pip 对不对
$ pip show <installed-package> # 看看 Location 字段的值

