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

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

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Введение

В целом, в установке 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 для установки 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

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

# pip3.6 install jpath

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

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

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

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

18 комментариев

  1. Статья несколько устарела - python3.6 уже в epel попал и всё ставится одной командой yum install python36..

    • Понятное дело. Статья писалась, когда это еще не случилось, иначе бы не появилась.

  2. Подскажите как установить python3.7.4 когда на сервере нет доступа к репам и интернету?
    Через копирование папки с virtual env не работает.

  3. Так и где установка версии 3,7 ???????

    • 3.7 никто не обещал. В статье ставлю 3.6

      • Привет, можно плиз ссылку на статью, о которой идет речь тут: "Вы можете заменить стандартную версию, изменив символьную ссылку python с /usr/bin/python2 на /usr/bin/python36. Но если кому-то нужна будет старая версия, начнутся проблемы. Например, перестанет работать yum :) Эту ситуацию можно разрулить разными способами. Один из них я опишу в следующем разделе, где покажу, как установить несколько разных версий python и работать с ними."

        Буду очень благодарен

  4. А как установить версию 3 навсегда, окончательно и безповорртно. Зачем вообще нужен 2й питон????

    • Второй питон нужен, чтобы работал yum. Это как минимум, поэтому избавляться от него не рекомендуется. Вариант установки, предложенный в статье и есть окончательный. Более окончательно уже никак не установить.

  5. Владимир

    Спасибо, пока все работает

  6. Отличный гайд
    scl cool!

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

  8. Николай

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

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

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

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar