Ubuntu 16:pip install 安装到 python 3 而不是 2

Kar*_*sus 6 python pip 16.04

我升级到 Ubuntu 16.04。我知道它只安装了python 3,但不知何故python 2进入了那里(我猜是一个依赖项)。没关系,因为无论如何我都会添加它。两个 python 版本都存在,如下所示:

$ python --version
Python 2.7.11+
$ python3 --version
Python 3.5.1+
Run Code Online (Sandbox Code Playgroud)

我的问题是 pip 和 pip3 都默认为 python3 (并且也没有 pip2 )。例如:

$ sudo -H pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python3.5/dist-packages
$ sudo -H pip3 install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python3.5/dist-packages
Run Code Online (Sandbox Code Playgroud)

就其价值而言,他们指的是不同的饲养员:

$ which pip
/usr/local/bin/pip
$ which pip3
/usr/local/bin/pip3
Run Code Online (Sandbox Code Playgroud)

如何像在 Ubuntu 14.04 中一样将 pip 安装到 python2 并将 pip3 安装到 python3?

小智 7

两者安装后

sudo apt-get install python-pip
sudo apt-get install python3-pip
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 16.04 下我可以简单地使用

pip2 install module
pip3 install module
Run Code Online (Sandbox Code Playgroud)

分别为 Python2 或 Python3 安装所需的模块。

我希望这对你有帮助,也对你有用!


Kar*_*sus 0

我找到了一种可行的方法,希望在此过程中没有破坏任何东西。起初,我尝试编辑 /usr/local/bin/pip 中的第一行,将其从 python 3 更改为 python 2 编译器,但出现错误,没有名为 pip 的模块!?

所以我想也许我需要为 python 2 安装它。所以我去那里保存了他们提供的 get-pip.py 脚本。有警告称它可能会破坏操作系统的内容,但由于 xenial 仅使用 python3,我决定冒险。它起作用了:

$ sudo -H pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python2.7/dist-packages
$ sudo -H pip3 install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python3.5/dist-packages
Run Code Online (Sandbox Code Playgroud)

仍然存在一个潜在的问题,那就是 muru 提到的 /usr/local 中的东西,但我对此了解不多,如果东西继续工作,我不会抱怨。我添加软件包的唯一方法是 apt-get 和一些 .deb 文件(极少数例外)(例如 chrome iirc)。