如何将pip3命令更改为pip?


75

我卸载了pippip3而是安装了。现在,我只想pip3通过键入pip使用。原因是我pip只习惯键入内容,并且每个指南都使用该pip命令,因此每次我要复制和粘贴命令时,都必须进行修改pippip3节省时间。当我键入内容时,pip我遇到一个错误,pip: command not found这意味着未pip执行命令。可以pip指出pip3吗?


请考虑我的回答,我认为这比别名更合适
noraj

顺便说一句,对于这种特定情况,我会考虑使用virtualenv
cz

alias或是symlink一种选择,但我认为选择该选项update-alternatives会更好。因为,你不想来更新您的.bashrc文件,一次又一次,也不能把一堆符号链接类似情况下,如针对python3其不同的版本。
aspiring20年

Answers:


87

您可以将别名添加到您的〜/ .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
TeddybearCrisis

别名pip = pip3 >>〜/ .bash_aliases为我工作,谢谢TeddybearCrisis
user3424037 19/12/27

@Ambitions对于MacOS,请转到Macintosh HD / Users /您的名称/目录。将此别名放在任何.bashrc或.bash_profile中都可以。
吉米·肖

78

与其在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 19/12/27

@ user3424037可能是MacPorts的旧版本(不支持此版本-请参阅stackoverflow.com/questions/12557114/macports-and-the-bash-path),或者通过MacPorts以外的方法安装了Pip。
cz

1
@ndemarco据我所知,它只是创建一个链接,然后跟踪该链接以确保在应用程序更新时被更新,在应用程序被删除时被删除,并且不与另一个应用程序冲突。我不确定此过程的技术细节,可能取决于程序包管理器。我发现Macports特别擅长并排处理不同版本的Python,保持二进制文件分开,但是--set如果他们想更改默认版本,可以帮助用户告诉(重新)运行命令。用来。
cz

1
我可以确认Linux语句有效。最佳答案。为什么要像已接受的答案一样使用别名更改.bashrc,这似乎更专业。
questionto42

22

解决方案1

检查点子指向哪个版本

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

如果您pip指向pip2,则定位点“二进制”在哪里。

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的符号链接。

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

8

您可以在主目录中更改bashrc文件后为pip3编写pip。

在Mac中-

打开bashrc文件-

vim ~/.bashrc

在文件末尾添加此行-

alias pip="pip3"

关闭文件。不要忘记通过以下方式在终端中获取此文件

source ~/.bashrc

你已准备好出发。现在,无论何时您将在任何命令中使用pip。它将被解释为pip3

您可以通过运行以下命令进行检查-

pip --version

这重复了MacHala公认答案的核心解决方案。稍微看一下发布日期:尽管这个答案解释了更多有关它的处理方法,但是在接受答案的两年后,我看不到对此答案的支持。评论/编辑就可以了。除此之外。可能最好的答案是@cz,它也是在此之前。
questionto42

8

自从您卸载后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”。
青衣


2

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

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

尽管这不是永久的。OT使其永久编辑bashrc文件
$ vim ~/.bashrc
,并在其末尾添加该行。 $alias pip="pip3"


2

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

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

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,则可以使用相同的update命令并将最后一位1更改为2。这将使其成为第二优先级。


-3

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

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

pip3 --version 

现在可以使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.