Ubuntu 16: pip install устанавливает на python 3 вместо 2
Я обновился до 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
Как мне сделать установку pip в python 2 и установку pip3 в python3 как в Ubuntu 14.04?
4 ответа
Я нашел способ, который работает, и, надеюсь, я ничего не сломал в процессе. Сначала я попытался отредактировать первую строку в /usr/local/bin/pip, чтобы изменить ее с python 3 на python 2 compiler, но получил ошибку, что не было модуля с именем 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 есть что-то, что упоминал Муру, но я мало что знаю об этом, и если что-то продолжит работать, я не буду жаловаться. Единственные способы, которыми я добавил пакеты, - это apt-get и некоторые файлы.deb за редким исключением (например, chrome iirc).
После установки обоих
sudo apt-get install python-pip
sudo apt-get install python3-pip
под Ubuntu 16.04 я могу просто использовать
pip2 install module
pip3 install module
установить нужный модуль для Python2 или Python3 соответственно.
Я надеюсь, что это полезно и работает для вас тоже!
Столкнулись с той же проблемой, которая была устранена путем удаления pip из python3 путем его переустановки следующим образом:
sudo python -m pip install -U --force-reinstall pip
Я знаю, что это старая тема, но поскольку ни один из ответов не решил проблему для меня, и я не смог найти другого решения в Интернете, я подумал, что поделюсь тем, что, наконец, сработало для меня.
Выполнение этих двух строк исправило проблему для меня, и теперь pip устанавливает модули для python2.
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
python get-pip.py