Thank you for reading this post, don't forget to subscribe!
В стандартной установке в системе centos 7 установлена версия питона 2.7
Если производить установку пакета из стандартного репозитория или epel, по-умолчанию будет работать старая версия.
Вам может быть нужно иметь 2 и более версий питона в системе и как-то оперативно переключаться, для запуска скриптов с разной версией.
Если вам надо просто поставить голый Python версии, к примеру, 3.6, то на момент написания статьи она есть в репозитории epel
# yum install epel-release
# yum install python36
И все. Но если после этого, вы проверите версию питона в консоли:
# python -V
Python 2.7.5
Увидите, что по-умолчанию вызывается старая версия. Если нужно запустить именно новую, то надо запускать именно версию 3.6.
# python36 -V
Python 3.6.3
Вы можете заменить стандартную версию, изменив символьную ссылку python с /usr/bin/python2 на /usr/bin/python36. Но если кому-то нужна будет старая версия, начнутся проблемы. Например, перестанет работать yum
В рекомендациях говорится, что вместо репозитория epel нужно использовать ius для установки python. Как минимум, потому что там сразу же можно установить pip нужно версии. К примеру, в epel есть python36, но нет к нему pip36, только 3.4. Это неудобно. Так что подключаем ius репозиторий и ставим все необходимое.
yum install https://centos7.iuscommunity.org/ius-release.rpm
# yum install python36u python36u-devel python36u-pip
Проверяем:
# python3.6 -V
Python 3.6.5
Установка нескольких версий Python
Что сделать, чтобы удобно работать с разными версиями питона? Можно установить репозиторий так называемой Software Collections или SLC и поставить версию питона оттуда. Ее удобство будет в том, что существует инструмент, который позволит запустить bash оболочку с новой версией питона, выполнить скрипты, которым нужна эта версия и просто выйти из оболочки. Мне как раз помог такой способ, когда нужно было быстро разово выполнить несколько скриптов, которым нужна была версия 3 и которые делали проверку этой версии через обращение к системному python.
Подключаем репозиторий SCL:
# yum install centos-release-scl
Ставим Python нужной версии, например 3.6.
# yum install rh-python36
Теперь можно сделать вот так:
# scl enable rh-python36 bash
И мы оказываемся в консоли с нужной версией питона.
# python -V
Python 3.6.3
Можно запускать скрипты, которые требуют именно эту версию. Они при запуске убедятся, что версия именно та, что нужна.
Установка менеджера pip и пакетов python
Ниже описано как установить пакетный менеджер pip нужной версии и пакеты к нему. Как уже говорил выше, нужно подключить репозиторий ius, если не подключили ранее и выполнить установку.
# yum install https://centos7.iuscommunity.org/ius-release.rpm
# yum install python36u-pip
Можно сразу же после установки обновить pip до последней версии:
# pip3.6 install --upgrade pip
На этом все