【问题标题】:How to change pip3 command to be pip?如何将 pip3 命令更改为 pip?
【发布时间】:2017-11-11 07:21:53
【问题描述】:

我卸载了pip,然后安装了pip3。现在,我只想通过输入pip 来使用pip3。原因是我习惯只输入pip,每个指南都使用pip命令,所以每次我想复制和粘贴命令时,我都必须将pip修改为pip3,这很浪费时间。当我输入pip 时,我有一个错误pip: command not found,这意味着pip 命令未被执行。是否可以让pip 指向pip3

【问题讨论】:

  • 请考虑我的回答,我认为这比别名更合适
  • 顺便说一句,对于这种特殊情况,我会考虑使用virtualenv
  • aliassymlink 是一种选择,但我认为使用 update-alternatives 会更好。因为,您不想一次又一次地更新您的.bashrc 文件,也不想为类似情况(例如python3 及其不同的情况)制作一堆符号链接版本。

标签: pip


【解决方案1】:

你可以给你的 ~/.bashrc 添加别名

alias pip=pip3

或添加到名为 pip 的 $PATH 符号链接,指向 pip3 二进制文件

(顺便说一句,这即使涉及 pip 并不是真正与 python 相关的问题,所以你应该重新标记它)

更新:2020 年 7 月

如果你在macOS的主目录下没有~/.bashrc,输入

alias pip=pip3

在你的 ~/.zprofile 文件中也有同样的效果,

【讨论】:

  • 如何找到~/.bashrc?我根据您的推荐重新标记了我的帖子。
  • @Ambitions 实际上,这只涉及 Linux/*nix(包括 Mac),所以如果你使用的是 Windows,我帮不了你。在基于 unix 的系统中 ~ 代表主目录(或者如果你不使用 BASH,它可能是其他文件,例如 .zshrc )
  • 这在 Ubuntu 18.04 中对我有用,因为 .bashrc 检查 .bash_aliases 是否存在:alias pip=pip3 >> ~/.bash_aliases
  • alias pip=pip3 >> ~/.bash_aliases 为我工作,谢谢 TeddybearCrisis
  • 这是错误的答案。和一个糟糕的方法。正确的方法是使用update-alternatives。检查@c-z 的答案。
【解决方案2】:

与其在 bash 中手动创建自己的别名并希望这不会与任何东西发生冲突,大多数包管理器应该允许您在维护依赖关系的同时注册您希望使用的版本。

例如在 Linux 上:

sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

或在 Mac (MacPorts) 上:

port select --set pip pip3

【讨论】:

  • 为“pip”选择“pip3”失败:指定的组“pip”不存在。
  • @user3424037 可能是旧版本的 MacPorts(不支持此功能 - 请参阅 stackoverflow.com/questions/12557114/macports-and-the-bash-path),或者 Pip 已通过 MacPorts 以外的方法安装。
  • @ndemarco 据我所知,它只是创建一个链接,然后跟踪该链接以确保在更新应用程序时更新它,在删除应用程序时删除它,并且不与另一个应用程序冲突。这个过程的技术细节我不确定,可能取决于包管理器。我发现 Macports 尤其擅长并排处理不同版本的 Python,保持二进制文件分开但有助于告诉用户(重新)运行--set 命令,如果他们想更改使用的默认版本。
  • 我可以确认 Linux 声明有效。最佳答案。为什么要像接受的答案所暗示的那样用别名更改 .bashrc,这似乎更专业。
  • questionto42,更专业(更新替代方案)并且更容易自动化,我会说...另一个解决方案我会说它更容易出错。同意,这应该是选定的答案。
【解决方案3】:

解决方案 1

检查 pip 指向的版本

pip --version
pip 18.0 from /usr/lib/python2.7/site-packages/pip (python 2.7)

如果您的 pip 指向 pip2,请找到 pip“二进制”的位置。

which pip
/usr/bin/pip

这是一个简单的python脚本:

cat /usr/bin/pip
#!/usr/bin/python2

# -*- coding: utf-8 -*-
import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

所以只需将 shebang 从 #!/usr/bin/python2 更改为 #!/usr/bin/python3

现在pip 指向pip3

pip --version         
pip 18.0 from /usr/lib/python3.6/site-packages/pip (python 3.6)

解决方案 2

删除/usr/bin/pip make 建立一个从想要的 pip 版本到它的符号链接。

sudo rm /usr/bin/pip
sudo ln -s /usr/bin/pip3.6 /usr/bin/pip

【讨论】:

  • re:解决方案 2,值得注意的是,自从 El Capitan 以来,您必须使用 sudo ln -s /usr/bin/pip3 /usr/local/bin/pip(如果 /usr/local/bin 不存在,您可能必须首先使用 sudo mkdir -p /usr/local/bin)参见:stackoverflow。 com/a/36734569/2764290
【解决方案4】:

由于您卸载了pip,因此此解决方案假定您只打算使用pip3

  1. 打开你的终端。

  2. 创建一个简单的链接。要做到这一点:

    sudo ln -s /usr/bin/pip3 /usr/bin/pip

现在当你输入pip时,它会调用pip3

输入pip --version检查它是否有效

pip --version   
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

一切就绪!

【讨论】:

  • 它对我有用,除了我需要先“rm -rf /usr/local/bin/pip”。
  • 值得注意的是,自从 El Capitan 以来,您必须使用 sudo ln -s /usr/bin/pip3 /usr/local/bin/pip(如果 /usr/local/bin 不存在,您可能必须先使用 sudo mkdir -p /usr/local/bin)参见:stackoverflow.com/a/36734569/2764290
【解决方案5】:

修改主目录下的 bashrc 文件后,可以为 pip3 写 pip。

在 mac -

打开 .bashrc 文件 -

vim ~/.bashrc

在文件末尾添加这一行 -

alias pip="pip3"

关闭文件。不要忘记通过

在终端中获取此文件
source ~/.bashrc

你可以走了。现在,无论何时您将在任何命令中使用 pip。它将被解释为 pip3

你可以通过运行命令来查看——

pip --version

【讨论】:

  • 这重复了 MacHala 公认答案的核心解决方案。稍微看一下发布日期:虽然这个答案解释了如何处理它,但在接受答案 2 年后,我在这里看不到一个答案的赞成票。评论/编辑就可以了。除此之外。可能最好的答案是@cz 的答案,它也在此之前。
【解决方案6】:

Pip 安装在 /usr/bin/ 中。如果你根本没有 pip,我建议只安装 pip3。确保您不需要旧版本。

您可以使用以下命令检查可用的 pip 版本。

ls /usr/bin/pip*

如果您有多个 pip,则需要优先考虑您的 pip 版本。我只有 pip3,所以我将它添加到第一优先级。你可以使用下面的命令,它就完成了。

sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

你会得到如下输出:

update-alternatives: 使用 /usr/bin/pip3 在自动模式下提供 /usr/bin/pip (pip)

立即测试:

pip --version

您将获得: 来自 /usr/lib/python3/dist-packages/pip (python 3.7) 的 pip 18.1

如果你有python2.7的其他版本,你可以使用相同的更新命令,将最后一位数字1改为2。这将使它成为第二优先。

【讨论】:

    【解决方案7】:

    我认为不应该做这样的事情。实际上,我认为最好不要使用pippip3 等脚本。相反,人们应该总是更喜欢将pip的可执行模块用于特定的Python解释器的更明确和可靠的方式:

    path/to/pythonX.Y -m pip somecommand
    

    参考资料:

    【讨论】:

    • 我很高兴得到这个答案提醒我,即使我通过我的包管理器 (apt) 而不是 python -m ensurepip 安装了 pip3(我的发行版上没有) ,一旦安装了pip3python -m pip就可以工作了(假设python指向我的python3)。
    【解决方案8】:

    您可以在安装pip3 后通过以下命令安装pip

    pip3 install --upgrade pip
    

    之后:

    ~ pip --version
    pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
    

    【讨论】:

      【解决方案9】:

      这可以通过简单地为命令创建一个别名来完成。 要创建别名,只需键入

      $alias new_command="existing_command"
      就你而言,
      $alias pip="pip3"

      虽然这不是永久性的。 OT 使其永久编辑您的 bashrc 文件
      $ vim ~/.bashrc
      an 到它的末尾附加该行。 $alias pip="pip3"

      【讨论】:

        【解决方案10】:

        复制pip3文件并重命名为pip:

        sudo cp /usr/bin/pip3 /usr/bin/pip
        pip --version 
        

        pip3 --version 
        

        现在工作。

        【讨论】:

        • 按照this answer中的描述进行符号链接真的更好
        猜你喜欢
        • 2019-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-21
        • 1970-01-01
        相关资源
        最近更新 更多