问题:pip或pip3为Python 3安装软件包?
我有一台配备OS X El Captain的Macbook。我认为那Python 2.7是预装的。但是,我也安装Python 3.5了。开始使用时Python 3,我读到要安装软件包,应输入:
pip3 install some_package无论如何,现在当我使用
pip install some_package我some_package安装了Python 3。我的意思是我可以导入它,并且可以毫无问题地使用它。而且,当我只pip3输入时Terminal,我得到以下关于用法的消息:
Usage:   
  pip <command> [options]这是我输入just时得到的相同信息pip。
这是否意味着在previos版本,事情是不同的,现在pip和pip3可以互换使用?如果是这样,并且为了参数起见,我该如何安装软件包Python 2而不是Python 3?
回答 0
您pip是使用链接到同一可执行文件路径的软链接pip3。您可以使用以下命令来检查您的真实路径pip和pip3实际路径:
$ ls -l `which pip`
$ ls -l `which pip3`您也可以使用以下命令了解更多详细信息:
$ pip show pip
$ pip3 show pip当我们安装不同版本的python时,我们可能会创建以下软链接到
- 将默认点设置为某些版本。
- 为不同的版本创建不同的链接。
这是同样的情况python,python2,python3
如果您对在不同情况下如何发生感兴趣,可以在下面获取更多信息:
回答 1
如果您安装了python 2.x,然后安装了python3,则您的pip将指向pip3。您可以通过键入来验证pip --version与相同pip3 --version。
在您的系统上,现在有了pip,pip2和pip3。
如果需要,可以将pip更改为指向pip2而不是pip3。
回答 2
安装后python3,即pip3会安装。如果你没有其他的Python安装(如python2.7),然后链接创建这点pip来pip3。
所以pip是一个链接pip3,如果有Python安装的任何其他版本(比python3等)。
pip通常指向首次安装。
回答 3
这是一个棘手的问题。最后,如果您调用pip它,则将调用pip2或pip3,具体取决于您如何设置系统。
回答 4
我认为pip,pip2并且pip3不是指向同一可执行文件路径的软链接。请注意以下命令并在我的linux终端中显示结果:
mrz@mrz-pc ~ $ ls -l `which pip`
-rwxr-xr-x 1 root root 292 Nov 10  2016 /usr/bin/pip
mrz@mrz-pc ~ $ ls -l `which pip2`
-rwxr-xr-x 1 root root 283 Nov 10  2016 /usr/bin/pip2
mrz@mrz-pc ~ $ ls -l `which pip3`
-rwxr-xr-x 1 root root 293 Nov 10  2016 /usr/bin/pip3
mrz@mrz-pc ~ $ pip -V
pip 9.0.1 from /home/mrz/.local/lib/python2.7/site-packages (python 2.7)
mrz@mrz-pc ~ $ pip2 -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
mrz@mrz-pc ~ $ pip3 -V
pip 9.0.1 from /home/mrz/.local/lib/python3.5/site-packages (python 3.5)如您所见,它们存在于不同的路径中。
pip3始终仅在Python3环境上运行,就像pip2在Python2上一样。pip在适合上下文的任何环境下运行。例如,如果您在Python3平台上,pip将在Python3环境下运行。
回答 5
通过插图:
pip --version
  pip 19.0.3 from /usr/lib/python3.7/site-packages/pip (python 3.7)
pip3 --version
  pip 19.0.3 from /usr/lib/python3.7/site-packages/pip (python 3.7)
python --version
  Python 3.7.3
which python
  /usr/bin/python
ls -l '/usr/bin/python'
  lrwxrwxrwx 1 root root 7 Mar 26 14:43 /usr/bin/python -> python3
which python3
  /usr/bin/python3
ls -l /usr/bin/python3
  lrwxrwxrwx 1 root root 9 Mar 26 14:43 /usr/bin/python3 -> python3.7
ls -l /usr/bin/python3.7
  -rwxr-xr-x 2 root root 14120 Mar 26 14:43 /usr/bin/python3.7因此,在我的默认系统python(Python 3.7.3)中,my pip 是 pip3。
回答 6
如果您安装了Python 2.7,我想您可以使用pip2和pip2.7安装专门针对Python 2的软件包,例如
pip2 install some_pacakge要么
pip2.7 install some_package您可以使用pip3或pip3.5安装专门用于Python 3的pacakges。
回答 7
在我的Windows实例上-并且我不完全了解我的环境-使用pip3安装kaggle-cli程序包有效-而pip无效。我在conda环境中工作,环境似乎有所不同。
(fastai)C:\ Users \ redact \ Downloads \ fast.ai \ deeplearning1 \ nbs> pip –version
来自C:\ ProgramData \ Anaconda3 \ envs \ fastai \ lib \ site-packages的pip 9.0.1(python 3.6)
(fastai)C:\ Users \ redact \ Downloads \ fast.ai \ deeplearning1 \ nbs> pip3 –version
来自c:\ users \ redact \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages(python 3.6)的pip 9.0.1
回答 8
在somepath / venv中激活了Python 3.6 virtualenv后,以下别名解决了macOS Sierra上的各种问题,其中pip坚持指向Apple的2.7 Python。
alias pip='python somepath/venv/lib/python3.6/site-packages/pip/__main__.py'当我不得不做的时候,这不是很好,sudo pip因为root用户对我的别名或virtualenv一无所知,所以我也不得不添加一个额外的别名来处理这个问题。这是一个hack,但是可以用,我知道它的作用:
alias sudopip='sudo somepath/venv/bin/python somepath/venv/lib/python3.6/site-packages/pip/__main__.py'背景:
pip3不存在,无法启动(找不到命令),which pip它将返回Apple Python的/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/pip。
Python 3.6是通过macports安装的。
激活我想使用的3.6 virtualenv后,which python将返回somepath / venv / bin / python 
以某种方式pip install可以做正确的事情并击中我的virtualenv,但pip list会使Python 2.7包感到不安。
对于Python而言,这对初学者友好程度比我期望的要低。

