Установка Python 3 в CentOS 7

Edit...
howto
Illustrated by Igan Pol

Привет, %username%! При работе на CentOS всё чаще необходим становится Python третьей ветки, ибо вторая ветка скоро умрёт. Как ставить Python 3.x из репозиториев? Легко!

⚠️ CentOS 7 — EOL с 30 июня 2024. Пост оставлен как есть для тех, кто всё ещё поддерживает легаси-серверы. Для новых установок используй Rocky Linux 9 или AlmaLinux 9 — там Python 3.9/3.11 доступен из коробки через dnf install python3 или через dnf module enable python:3.11. Репозиторий IUS под EL9 не нужен.

Условия#

  • CentOS 7 установленный и запущенный
  • Права sudo

Установка сопуствующих утилит#

Для установки сопутствующих утилит необходимо выполнить следущие команды:

sudo yum update
sudo yum install yum-utils 
sudo yum groupinstall development 

Установка Python 3.x#

В стандартных репозиториях отсутствует последняя стабильная сборка Python и нам необходимо установить дополнительный репозиторий IUS (Inline with Upstream Stable).

sudo yum install https://centos7.iuscommunity.org/ius-release.rpm

После чего сможем установить Python 3.6:

sudo yum install python36u
python3.6 --version  # Проверяем версию установленного Python 3.6

Далее устанавливаем менеджер пакетов pip:

sudo yum install python36u-pip
sudo yum install python36u-devel

Проверяем что у нас всё стало хорошо

# Вызываем стандартный интерпретатор Python
python -V
# Видим что он второй ветки:
Python 2.7.5

# Вызываем установленный Python 3 
python3.6 -V
# Видим что он третьей ветки:
Python 3.6.1

Создание виртуального окружения#

Дабы сохранять систему в чистоте используем виртуальное окружение (в папке с проектом):

python3.6 -m venv venv

Результатом будет создание директории venv в текущей директории с проектом. После этого можно его активировать и установить зависимости проекта, используя pip:

. venv/bin/activate  # Ативируем виртуальное окружение
pip install [package_name] # Устанавливаем пакет package_name
pip install -r requirements.txt # Устанавливаем зависимости из файла requirements.txt

Тонкие места, на которых легко споткнёшься#

  • Репозиторий IUS и пакеты python36u фактически мертвы. Команда yum install https://centos7.iuscommunity.org/ius-release.rpm сегодня просто не отзовётся: домен iuscommunity.org давно не резолвится, сам проект IUS свернулся, а вслед за EOL CentOS 7 зеркала с python36u превратились в тыкву. Если тебе всё-таки надо поднять Python 3 на живой «семёрке» из легаси — бери его из SCL (yum install centos-release-scl, дальше rh-python38) или собирай из исходников. Но честнее не реанимировать труп, а переехать на Rocky Linux 9 / AlmaLinux 9, где dnf install python3 ставит всё из коробки (про это — врезка в начале поста). Сам рецепт ниже оставлен как исторический: «вот как это делалось в 2019-м».
  • –V — это не -V. В командах проверки версии до боли легко вставить длинное тире (en-dash) вместо обычного дефиса -. Сам по себе ты его не напечатаешь, но он приезжает при копировании из веба или из доков, где типографика автоматом «улучшает» дефисы. python3.6 –V упадёт с unknown option, и ошибка ни единым словом не намекнёт, что виноват невидимый символ — на вид-то всё правильно. Так что если команда ругается на опцию, которая обязана работать, первым делом проверь дефисы: не подменились ли они тире.

На этом всё! Profit!


Если у тебя есть вопросы, комментарии и/или замечания – заходи в чат , а так же подписывайся на канал .

О способах отблагодарить автора можно почитать на странице “Донаты ”.