我升级到了 Ubuntu 16.04。我知道它只安装了 Python 3,但不知何故 Python 2 也装在里面了(我猜是作为依赖项)。没关系,因为我无论如何都会添加它。两个 Python 版本都存在,如下所示:
$ python --version
Python 2.7.11+
$ python3 --version
Python 3.5.1+
我的问题是 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
不管怎样,他们指的是不同的食物来源:
$ which pip
/usr/local/bin/pip
$ which pip3
/usr/local/bin/pip3
如何像在 Ubuntu 14.04 中一样将 pip 安装到 python2 并将 pip3 安装到 python3?
答案1
安装两者后
sudo apt-get install python-pip
sudo apt-get install python3-pip
在 Ubuntu 16.04 下我可以简单地使用
pip2 install module
pip3 install module
分别为 Python2 或 Python3 安装所需的模块。
我希望这对你也有帮助并且有用!
答案2
面临同样的问题,通过重新安装 pip 和 python3 解除链接解决了这个问题,如下所示:
sudo python -m pip install -U --force-reinstall pip
答案3
我找到了一种可行的方法,希望在此过程中没有破坏任何东西。起初,我尝试编辑 /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
还有一个潜在的问题,即东西在 /usr/local 中,muru 提到过,但我对此不太了解,如果东西继续工作,我不会抱怨。我添加软件包的唯一方法是 apt-get 和一些 .deb 文件(少数例外情况,如 chrome irc)。
答案4
我知道这是一个老话题,但由于没有任何答案能为我解决问题,而且我在网上找不到任何其他解决方案,所以我想分享最终对我有用的方法。
运行这两行解决了我的问题,现在 pip 为 python2 安装模块
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
python get-pip.py