В стандартной установке в системе центос 7 установлена версия питона 2.7. Ниже я расскажу, как установить на сервер с CentOS 7 более свежую версию Python 3. На деле это оказалось не такой простой задачей, как может показаться.
Научиться настраивать 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
На этом все. Если у кого-то есть замечания по существу, советы или исправление ошибок, прошу поделиться всем этим в комметариях.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Статья несколько устарела - python3.6 уже в epel попал и всё ставится одной командой yum install python36..
Понятное дело. Статья писалась, когда это еще не случилось, иначе бы не появилась.
Подскажите как установить python3.7.4 когда на сервере нет доступа к репам и интернету?
Через копирование папки с virtual env не работает.
Скачать rpm пакет и установить из него:
https://fedora.pkgs.org/34/fedora-x86_64/python3.7-3.7.10-1.fc34.x86_64.rpm.html
Так и где установка версии 3,7 ???????
3.7 никто не обещал. В статье ставлю 3.6
Привет, можно плиз ссылку на статью, о которой идет речь тут: "Вы можете заменить стандартную версию, изменив символьную ссылку python с /usr/bin/python2 на /usr/bin/python36. Но если кому-то нужна будет старая версия, начнутся проблемы. Например, перестанет работать yum :) Эту ситуацию можно разрулить разными способами. Один из них я опишу в следующем разделе, где покажу, как установить несколько разных версий python и работать с ними."
Буду очень благодарен
Уже вижу, спасибо :)
А как установить версию 3 навсегда, окончательно и безповорртно. Зачем вообще нужен 2й питон????
Второй питон нужен, чтобы работал yum. Это как минимум, поэтому избавляться от него не рекомендуется. Вариант установки, предложенный в статье и есть окончательный. Более окончательно уже никак не установить.
Спасибо
возможно имелось ввиду что-то вроде update-alternatives
Спасибо, пока все работает
Отличный гайд
scl cool!
спасибо! да пригодилось!!
но на девел модуль ругаеться чото
еррор сумари
Спасибо. Пригодилось.
Вообще, хорошей практикой считается не использовать алиас python, а всегда оперировать версией, например
#!/bin/python3.6
Я чаще в готовых скриптах вижу просто python, python2, python3. В системе уже делаю алиасы на соответствующие версии.