Могут ли сосуществовать pip (python2) и pip3 (python3)? - PullRequest
5 голосов
/ 24 апреля 2019

Я всегда думал, что pip для Python 2, а pip3 для Python 3. Чтобы установить разные версии pip, я сделал следующее:

sudo apt-get install python-pip
sudo apt-get install python3-pip

тогда я получаю следующее, как и следовало ожидать:

$ pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
$ pip3 --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

Это старые версии, поэтому я делаю следующее:

$ sudo pip install pip --upgrade

и я получаю это:

$ pip --version
pip 19.0.3 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
$ pip3 --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

и когда я выполняю установку pip3 для какого-либо пакета, я получаю следующее сообщение:

You are using pip version 8.1.1, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Ну, я уже запустил это, поэтому я пытаюсь это:

$ sudo pip3 install pip --upgrade
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr
Successfully installed pip-19.0.3

Но теперь я получаю это:

$ pip --version
pip 19.0.3 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)
$ pip3 --version
pip 19.0.3 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

Это правильно? Имеет ли это значение? Работает ли версия pip из Python 3.5 для установки пакетов Python 2?

UPDATE

Исходя из ответа, предоставленного @furas, все эти команды, которые я выполняю, чтобы правильно установить обновленные версии pip и pip3:

sudo apt-get install python-pip --yes
sudo apt-get install python3-pip --yes
sudo python3 -m pip install pip --upgrade
sudo python -m pip install pip --upgrade --force # this line fixes the pip install to point to the python2 version instead of the python3 version

и это дает следующее:

$ pip --version
pip 19.0.3 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
$ pip3 --version
pip 19.0.3 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

1 Ответ

4 голосов
/ 24 апреля 2019

Каждый Python должен иметь свой собственный pip, потому что каждый Python может использовать разные версии одного и того же модуля, и каждый Python устанавливает модули в разные папки.

Вы можете использовать Python2 для установки pip для Python2 и он должен создать правильный файл pip

python -m pip install -U --force pip

Вы также должны иметь pip, pip2, pip2.7, pip3, pip3.5.Вы даже можете иметь pip3.6, pip3.7 одновременно.

Запись в консоли pip и нажатие клавиши tab, и она должна показать все программы, которые начинаются с pip

Вы можете найти полный путь для pip с помощью

which pip 

и увидеть, что это скрипт Python.

Другой pip имеет другую первую строку #!/usr/bin/python или #!/usr/bin/python3.5.Код отдыха должен быть одинаковым для всех версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...