Как установить pip для python 3.8 на Ubuntu, не меняя настроек по умолчанию? - PullRequest
1 голос
/ 01 августа 2020

Я пытаюсь установить pip для Python 3.8 на Ubuntu 18.04 LTS.

Я знаю, что об этом спрашивали слишком много раз. Но эти вопросы не касаются конкретно сохранения настроек Ubuntu по умолчанию. И ответы на эти вопросы либо не работают, либо go предлагают что-то настолько c, что это может сломать систему - например, изменить версию python3 по умолчанию с 3.6 на 3.8. Вы НЕ ДОЛЖНЫ !

Итак, я смог успешно установить python3.8, используя PPA - ppa:deadsnakes/ppa:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8

Изменена команда python с python2 на python3.8 с использованием update-alternatives:

update-alternatives --remove python /usr/bin/python2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 10

Теперь я получаю python 3.8, когда делаю python --version:

Python 3.8.5

Проблема в том, что я все еще не могу установить pip для Python 3.8.
Если я попытаюсь установить python3-pip, он установит pip вместо Python 3.6, поскольку python3 по-прежнему указывает на python3.6.9, и я намерен оставить его таким же.
Попробуйте установить python-pip, и он установит pip для Python 2.7.
Также нет такого пакета, как python3.8-pip, поэтому я не могу установить его, например:

sudo apt install python3.8-pip

Вывод:

E: Невозможно найти пакет python3 .8-pip
E: не удалось найти ни один пакет по glob 'python3 .8-pip'
E: не удалось найти ни один пакет по регулярному выражению 'python3 .8-pip'

Что я могу сделать, чтобы установить pip для Python 3.8 на Ubuntu 18.04?

1 Ответ

2 голосов
/ 01 августа 2020

Хотя мы можем использовать pip напрямую как Python module (рекомендуемый способ):

python -m pip --version

Вот как я его установил (чтобы его можно было вызвать напрямую):
Во-первых, убедитесь, что команда pip доступна и не используется pip для Python 2.7

sudo apt remove python-pip

Теперь, если вы напишете pip в Терминале, вы Я получу, что там ничего не установлено:

pip --version

Вывод:

Команда 'pip' не найдена, но может быть установлена ​​с помощью:

sudo apt install python -pip

Убедитесь, что у вас установлено python3-pip:
(Это не будет работать без python3-pip. Хотя это установит pip 9.0.1 from python 3.6, нам понадобится это.)

sudo apt install python3-pip

Это установит pip 9.0.1 как pip3:

pip3 --version

Вывод:

pip 9.0.1 из / usr / lib / python3 / dist-packages (python 3.6)

Теперь, чтобы установить pip для Python 3.8, я использовал pip, назвав его python module ( ironi c! ):

python -m pip install pip

Вывод:

Сбор пипса * 105 5 * Загрузка https://files.pythonhosted.org/packages/36/74/38c2410d688ac7b48afa07d413674afc1f903c1c1f854de51dc8eb2367a5/pip-20.2-py2.py3-none-any.whl (1,5 МБ)
100% | ████████████████████████████ ████ | 1,5 МБ 288 КБ / с
Установка собранных пакетов: pip
Успешно установлен pip-20.2

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

Теперь убедитесь, что ваш каталог ~/.local/bin установлен в переменной среды PATH:
Откройте ~/.bashrc с помощью вашего любимого редактора (если вы используете zsh замените .bashrc на .zshrc)

nano ~/.bashrc

И вставьте в конец файла следующее:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

Наконец, укажите свой .bashrc (или перезапустите Терминал window):

source ~/.bashrc

Теперь, если вы попытаетесь запустить pip напрямую, вы получите правильную версию:

pip --version

Вывод:

пункт 20.2 из /home/qumber/.local/lib/python3.8/site-packages/pip (python 3.8)

Sweet!

...