Home » Linux » CentOS » Установка Python 3 на Centos 7

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

В стандартной установке в системе центос 7 установлена версия питона 2.7. Ниже я расскажу, как установить на сервер с CentOS 7 более свежую версию Python 3. На деле это оказалось не такой простой задачей, как может показаться.

Введение

В целом, в установке python 3 на CentOS 7 нет ничего сложного, но тем не менее, это не сделать обычной установкой пакета из стандартного репозитория или epel. Точнее, установить можно, но по-умолчанию будет работать старая версия.

Или, к примеру, вам может быть нужно иметь 2 и более версий питона в системе и как-то оперативно переключаться, для запуска скриптов с разной версией. В общем, тут есть небольшие нюансы, но обо всем по порядку.

Установка Python 3.6 на Centos 7

Если вам надо просто поставить голый 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 🙂 Эту ситуацию можно разрулить разными способами. Один из них я опишу в следующем разделе, где покажу, как установить несколько разных версий python и работать с ними.

Я везде вижу рекомендации, вместо репозитория epel, использовать ius для установки piyhon. Как минимум, потому что там сразу же можно установить 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

Для примера установим модуль питона jpath через pip.

# pip3.6 install jpath

Установка python3 на Centos 7

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

На этом все. Если у кого-то есть замечания по существу, советы или исправление ошибок, прошу поделиться всем этим в комметариях.

4 комментария

  1. Константин

    Вообще, хорошей практикой считается не использовать алиас python, а всегда оперировать версией, например
    #!/bin/python3.6

    • Я чаще в готовых скриптах вижу просто python, python2, python3. В системе уже делаю алиасы на соответствующие версии.

  2. Николай

    Спасибо. Пригодилось.

  3. спасибо! да пригодилось!!
    но на девел модуль ругаеться чото
    еррор сумари

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.