关于Python中pip默认指向的Python版本问题

想在 python2.7 中安装一个 tensorflow 的包,然而发现最近输入 pip ,会直接把这个包安装到 python3 中

请问如何把 pip 默认的 python 版本改到 python2.7 里面啊?

小白求助
关于Python中pip默认指向的Python版本问题

7 回复

Python 2.7 -> pip2 install
Python 3 -> pip3 install


这个问题很常见,通常是因为系统里装了多个Python版本,而pip命令没有绑定到你期望的那个Python上。

简单来说,pip只是一个脚本,它安装时会自动关联到调用它的那个Python解释器。你系统里可能有pythonpython3python3.11等多个命令,每个命令都可能对应一个独立的pip

如何检查和解决?

最直接的方法是使用对应Python解释器的 -m 参数来调用pip。这是最可靠、最推荐的方式。

  1. 首先,确认你当前使用的是哪个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) 就是它关联的版本。
    
  2. 使用特定Python版本运行pip(推荐方法): 假设你想为 python3.11 安装包,不要直接运行 pip install,而是运行:

    python3.11 -m pip install package_name
    

    这样就能确保包被安装到 python3.11site-packages 目录下,万无一失。

  3. 如果你想为特定版本创建独立的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 字段的值

回到顶部