Python один из самых популярных языков программирования, используемых сегодня. Многие системы Linux поставляются с предустановленным Python, но часто это старая версия, например Python 2.7. По мере развития Python с годами выходили новые версии, такие как Python 3.8, 3.7 и т.д., в которых были добавлены значительные новые возможности и улучшения.
Однако это может вызвать проблемы, если вам нужна определенная версия Python для ваших приложений или скриптов. Например, для некоторых приложений может потребоваться Python 2.7, а для других — Python 3.8.
Решение состоит в том, чтобы установить несколько версий Python рядом в вашей системе Linux. Это позволит вам переключаться между различными версиями для обеспечения совместимости с различными программами.
В этом подробном руководстве мы рассмотрим шаги по установке нескольких версий Python на CentOS и Ubuntu Linux. Инструкции работают для любой версии Python, включая последние версии 3.x и 2.x.
Предварительные условия
Прежде чем приступить к работе, убедитесь, что в вашей системе установлены последние пакеты:
# CentOS/RHEL
$ sudo yum update
# Ubuntu/Debian
$ sudo apt update
$ sudo apt upgrade
Python версий 2.x и 3.x могут мирно сосуществовать в одной системе. Нам просто нужно убедиться, что они установлены в разные каталоги.
В примерах ниже используются Python 3.8 и 2.7, но вы можете заменить их любыми версиями.
Установка Python на CentOS
Последние версии CentOS и RHEL поставляются с установленным по умолчанию Python 2. Мы будем использовать репозиторий Software Collections (SCL) для установки других версий Python по мере необходимости.
Шаг 1 — Установка инструментов разработки
Для сборки Python из исходников нам понадобится git и инструменты разработки:
$ sudo yum groupinstall "Development Tools"
$ sudo yum install git
Шаг 2 — Установка Python 3 с помощью SCL
Сначала включите репозиторий SCL:
$ sudo yum install centos-release-scl
Теперь установите Python 3.8:
$ sudo yum install rh-python38
Это позволит установить Python 3.8 в каталог /opt/rh/rh-python38.
Чтобы использовать эту версию Python, нам нужно включить ее с помощью:
$ scl enable rh-python38 bash
Убедитесь, что у вас теперь есть Python 3.8:
$ python --version
Вернитесь к системе Python 2.7:
$ exit
Шаг 3 — Установка Python 2 из IUS
Репозиторий IUS предоставляет обновленные версии Python 2.x для CentOS.
Включите IUS с помощью:
$ sudo yum install https://repo.ius.io/ius-release-el7.rpm
Теперь установите Python 2.7:
$ sudo yum install python27
Проверьте версию вашего Python 2.7:
$ python2.7 --version
Теперь у нас есть Python 3.8 и Python 2.7, установленные на CentOS!
Установка Python на Ubuntu
Ubuntu поставляется с установленным по умолчанию Python 3. Мы будем использовать deadsnakes PPA для установки других версий Python.
Шаг 1 — Установка инструментов разработки
Для компиляции Python нам нужны инструменты сборки и другие зависимости:
$ sudo apt update
$ sudo apt install build-essential libssl-dev libffi-dev python3-dev
Шаг 2 — Установка версий Python
Добавьте deadsnakes PPA, который предоставляет несколько версий Python:
$ sudo add-apt-repository ppa:deadsnakes/ppa
Теперь установите Python 3.8 и 2.7:
$ sudo apt install python3.8 python2.7
Убедитесь, что у вас есть несколько версий Python:
$ python3.8 --version
$ python2.7 --version
Теперь у нас есть Python 3.8 и 2.7, готовые к использованию!
Использование виртуальных сред
Рекомендуется создавать виртуальные среды для своих проектов, а не использовать системный Python. Это позволяет разделить зависимости между приложениями.
Чтобы создать виртуальную среду Python 3:
$ python3.8 -m venv myprojectenv
Активируйте ее с помощью:
$ source myprojectenv/bin/activate
По окончании деактивируйте окружение:
$ deactivate
Виртуальные среды можно создавать и для Python 2:
$ python2.7 -m virtualenv myprojectenv
Это позволяет легко переключаться между версиями Python для каждого проекта, не затрагивая всю систему.
Установка версии Python по умолчанию
После установки нескольких версий Python, python
может по-прежнему ссылаться на системный Python.
Чтобы изменить значение по умолчанию для всех пользователей, настройте симлинки:
$ sudo rm /usr/bin/python
$ sudo ln -s /usr/bin/python3.8 /usr/bin/python
Теперь python
будет работать Python 3.8.
Чтобы переключиться обратно на Python 2:
$ sudo rm /usr/bin/python
$ sudo ln -s /usr/bin/python2.7 /usr/bin/python
Для одного пользователя можно настроить симлинки в ~/.local/bin:
$ rm ~/.local/bin/python
$ ln -s /usr/bin/python3.8 ~/.local/bin/python
Это отменит системное значение по умолчанию только для этого пользователя.
Заключение
В этом руководстве мы рассмотрели установку и управление несколькими версиями Python на CentOS и Ubuntu. Вот краткий обзор основных моментов:
- Использование репозиториев SCL и IUS на CentOS для установки дополнительных версий Python
- Добавьте deadsnakes PPA на Ubuntu для установки нескольких версий Python
- Создание виртуальных сред для изоляции зависимостей между проектами Python
- Настройте симлинки, чтобы изменить значение по умолчанию
python
глобально или для каждого пользователя
Теперь у вас есть возможность использовать нужную версию Python для различных приложений и скриптов на Linux! Возможность установки нескольких версий рядом друг с другом обеспечивает совместимость и гибкость.