Black Friday! Получите до 9 месяцев Хостинга в подарок!

Подробнее

Как установить Python на Linux

post thumbnail

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

Эта статья поможет вам установить Python на ваш дистрибутив Linux. Мы рассмотрим 3 способа:

  • Использование менеджера пакетов – самый простой и распространенный способ установить Python. Большинство дистрибутивов Linux имеют пакеты Python в своих репозиториях.
  • Из источников – этот способ дает вам больше гибкости, но он может быть более сложным.
  • Через менеджер пакетов для Python (pyenv) – наиболее удобный способ, но требует дополнительных настроек.

А также дополнительно рассмотрим процесс настройки виртуальной среды для каждого из этих способов.

Хостинг | VPS | выделенные серверы для проектов на Python

Проверка версии Python

Обычно на большинстве дистрибутивов Linux Python 3-й версии уже установлен по умолчанию. Вы можете проверить его минорную версию (x.X.x) и патч (x.x.X) с помощью следующей команды:

python3 --version

На устаревших версиях дистрибутивов может быть установлен Python 2-й версии, для него используйте команду:

python --version

Установка Python через пакетный менеджер

Перед установкой обновим системные пакеты и репозитории:

Debian / Ubuntu

sudo apt update && sudo apt upgrade -y

RHEL (Fedora / Almalinux / RockyOS / CentOS)

sudo yum update -y

Для дистрибутивов Ubuntu мы можем легко расширить список доступных версий, добавив репозиторий deadsnakes:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update -y

Для дистрибутивов на основе Red Hat (Fedora / Almalinux / RockyOS / CentOS) можете добавить репозиторий EPEL (Extra Packages for Enterprise Linux):

sudo yum install epel-release -y

Проверьте, какие версии Python доступны для установки:

Debian / Ubuntu

sudo apt search python | grep ^python

RHEL (Fedora / Almalinux / RockyOS / CentOS)

sudo yum list available | grep ^python

В результате получите список доступных версий:

Установка Python на Linux через пакетный менеджер | HostPro Wiki

Чтобы сузить поиск до нужной вам версии, введите версию команды по следующему примеру (ищем, доступна ли нам версия python 3.8):

Debian / Ubuntu

sudo apt-cache search python | grep -E ^python3?\.8

RHEL (Fedora / Almalinux / RockyOS / CentOS)

sudo yum list available | grep -E ^python3?\.8

⚠️ Для устаревших дистрибутивов Linux на основе RH (CentOS 7, например), к сожалению, не такой широкий список версий, доступных для установки через системный пакетный менеджер, поэтому, если нужная версия не нашлась в списке системных пакетов, можете перейти к следующей части нашей статьи и попробовать скомпилировать нужную вам версию из исходного кода.

Если же в списке есть нужная вам версия, то выполнить ее установку можно по примеру команды:

Debian / Ubuntu

sudo apt install python3.6 -y

RHEL (Fedora / Almalinux / RockyOS / CentOS)

sudo yum install python3.6 -y

Нужно ли указывать минорную версию через точку (python3.6) или без (python36), зависит от того, как называется пакет версии. Это вы можете узнать из результата выполнения предыдущей команды, которую мы использовали для проверки доступных для установки версий. 

Чтобы обратиться к установленной версии интерпретатора, указывайте его номер и версию в команде. Например:

python3.6 --version

Установку дополнительных зависимостей и запуск скриптов проекта лучше выполнять в виртуальной среде. Как ее настроить мы описали в следующем блоке нашей статьи.

Компиляция Python из исходного кода

Компиляция версии Python из исходного кода требует установки дополнительных зависимостей. Выполняем их установку следующими командами:

Debian / Ubuntu

sudo apt-get install -y make curl build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl

RHEL (Fedora / Almalinux / RockyOS / CentOS)

sudo yum -y install epel-release
sudo yum -y groupinstall «Инструменты разработки»
sudo yum -y install curl gcc make zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel tk-devel

Установите номер версии Python в переменных командной оболочки, чтобы не указывать их постоянно в других командах, которые мы будем выполнять в процессе установки:

export PYTHON_VERSION=3.12.2

Проверить список доступных версий Python можете на официальном сайте.

Скачайте и распакуйте архив с исходным кодом, а после перейдите в распакованную директорию:

cd /tmp/
curl -O https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz
tar -xvzf Python-${PYTHON_VERSION}.tgz
cd Python-${PYTHON_VERSION}

Теперь укажите конфигурацию для сборки и запустите компиляцию:

./configure --enable-optimizations --with-lto
sudo make -j «$(nproc)»
sudo make install

В зависимости от ваших потребностей в использовании Python можете добавить следующие опции к команде ./configure :

--prefix=/path/to/directory

 Указывает каталог установки.

--enable-optimizations

Включает оптимизацию для Python.

--enable-ipv6

Включает поддержку сетей IPv6.

--with-lto

Включает Link-Time Optimization (LTO), что улучшит производительность, но может увеличить время компиляции.

? Вы можете узнать больше обо всех опциях конфигурации, выполнив:

./configure --help

Теперь можете проверить, правильно ли установился Python, а также его версию. Для установленной в нашем случае 3.12.2, например, проверяем следующей командой:

python3.12 --version

Если все работает корректно, то не забываем удалить файлы исходного кода, из которых мы выполняли компиляцию, они нам больше не нужны:

rm -rf /tmp/Python-${PYTHON_VERSION} /tmp/Python-${PYTHON_VERSION}.tar.gz

Для удобства, чтобы получить команды для установки вашей версии Python, можете использовать сервис Build, compile and install Python from source code.

⚠️ Ошибки при компиляции. Если компиляция завершилась с ошибкой, то попробуйте выполнить ее повторно без оптимизации. Перед этим также выполните очистку временных файлов, которые были созданы из предыдущей компиляции:

sudo make clean; ./configure; sudo make -j «$(nproc)»; sudo make install

Настройка виртуального окружения

На этом этапе мы уже можем запускать скрипты и устанавливать пакеты на нашу систему через пакетный менеджер pip. Но делать это лучше в виртуальном окружении, чтобы при использовании одной версии Python для разных приложений у нас не возникали конфликты между модулями, необходимыми для их работы:

mkdir my_project
cd my_project
python3.12 -m venv my_venv
source my_venv/bin/activate

Теперь уже в виртуальном окружении можем устанавливать дополнительные модули для наших приложений через инсталлятор пакетов для Python (pip), например:

pip install flask

Кроме того, что при выполнении команды pip в нашем виртуальном окружении нам не нужно указывать версию Python (например, pip3.12 для версии 3.12), мы изолируем пакеты нашего приложения от глобальных системных пакетов:

Установка Python на Linux | HostPro Wiki

Для того, чтобы выйти из виртуального окружения, выполняйте следующую команду:

deactivate

Установка Python через pyenv

Если указанные выше способы вам не подходят, то рекомендуем попробовать pyenv, он особенно удобен, если вы работаете над несколькими проектами, требующими разных версий интерпретатора. Этот менеджер версий Python позволяет легко переключаться между версиями и изолировать зависимости проекта.

Прежде чем устанавливать pyenv, нужно установить зависимости, необходимые для компиляции Python. Команду для их установки мы уже указывали в этой статье выше, но в этом случае мы добавим еще к пакетам git, поскольку загружать pyenv будем из git-репозитория.

Debian / Ubuntu

sudo apt install -y curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev build-essential libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

RHEL (Fedora / Almalinux / RockyOS / CentOS)

sudo yum -y install epel-release
sudo yum -y groupinstall «Development Tools»
sudo yum -y install git curl gcc make zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel tk-devel

Загрузите последнюю ветку исходного кода pyenv из его репозитория на Github и установите его в путь ~/.pyenv :

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

Теперь вам нужно установить переменную окружения PYENV_ROOT, чтобы она указывала на путь, куда вы установили pyenv, и экспортировать его. Затем добавьте $PYENV_ROOT/bin в ваш PATH, чтобы запустить утилиту командной строки pyenv как любую другую системную команду.

Вам также нужно включить shims и автозавершение, добавив pyenv init в командную строку, чтобы иметь возможность переключаться между версиями Python «на лету». Вы можете добавить все конфигурации с помощью следующей команды:

echo -e "\n## pyenv configs\nexport PYENV_ROOT=\"\$HOME/.pyenv\"\nexport PATH=\"\$PYENV_ROOT/bin:\$PATH\"\n\nif command -v pyenv 1>/dev/null 2>&1; then\n  eval \"\$(pyenv init -)\"\nfi" >> ~/.bashrc
## pyenv configs
export PYENV_ROOT=«$HOME/.pyenv»
export PATH=«$PYENV_ROOT/bin:$PATH»

if command -v pyenv 1>/dev/null 2>&1; then
   eval «$(pyenv init -)»
fi

После этого примените изменения:

source ~/.bashrc

Теперь на уровне оболочки bash пользователя, с которого вы выполняли установку, у вас есть возможность использовать, устанавливать и изменять версии Python.

На этом этапе можно перейти непосредственно к установке нужной вам версии Python. Проверить список доступных для установки версий можно, выполнив следующую команду:

pyenv install -l

Установка Python на Linux через pyenv | Блог HostPro

Установить версии Python можно по следующему примеру:

pyenv install 3.12.2

После этого проверьте, какие версии уже установлены:

pyenv versions

Как поставить Python на Linux | HostPro Wiki

Теперь вы можете устанавливать версии Python для каждого вашего проекта отдельно. Для этого перейдите в директорию вашего проекта:

cd /path/to/project/

И следующей командой, на уровне командной оболочки, установите версию Python, которую вы предварительно установили через команду pyenv install :

pyenv local 3.10.3

Находясь в директории можно проверить, корректно ли была установлена версия для вашего проекта через команды pyenv version или python -V.

Вы можете заметить, что версия Python изменилась при выполнении той же команды, когда вы перейдете в другую директорию вашей системы:

Как установить Python на Linux через pyenv | Блог HostPro

Эта версия является глобальной и используется по умолчанию. Изменить ее вы можете выполнив следующую команду, при условии, что версия уже установлена через pyenv install x.x.x :

pyenv global 3.12.2

❗ Не изменяйте глобальную версию для пользователя root. Это может привести к сбою системных утилит, если они не совместимы с новой версией Python.

Настройка виртуального окружения на pyenv

pyenv управляет виртуальными средами с помощью плагина pyenv-virtualenv, который автоматизирует управление виртуальными средами virtualenv для Python в Linux и других UNIX-подобных системах. Установите этот плагин:

git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
source ~/.bashrc

Создайте виртуальную среду для вашего проекта:

mkdir my_project
cd my_project
pyenv virtualenv 3.12.2 venv_my_project

Теперь можете активировать его:

pyenv activate venv_my_project

Если при активации виртуальной среды получаете ошибку, попробуйте обновить виртуальное окружение для пользователя командой source ~/.bashrc.

Настройка виртуального окружения на pyenv | Блог HostPro

Создав виртуальное окружение для нашего проекта, мы отделяем пакеты Python нашего отдельного приложения от глобальных пакетов и предотвращаем конфликты между ними. Например, на глобальной версии 3.12.2 у нас может быть установлен Django, а в виртуальном окружении на этой же версии – Flask:

Установка и запуск Python на Linux | Блог HostPro

Другие полезные команды

Покинуть виртуальное окружение:

pyenv deactivate

Просмотреть список виртуальных окружений:

pyenv virtualenvs

Удалить окружение:

pyenv virtualenv-remove venv_my_project

В завершение

Мы рассмотрели 3 различных способа установки версий Python на операционные системы Linux. По нашему мнению, самым удобным является установка через системный пакетный менеджер, ведь таким образом установка происходит за 2-3 команды.

В случае, когда на сервере размещается несколько различных приложений с различными версиями, лучше выбрать установку через Pyenv, также этот способ рекомендует и сообщество разработчиков Python. После всех настроек любую версию можно установить одной командой и сразу же начать ее использовать.

В HostPro вы можете выбрать хостинг для Python-проектов любых размеров. Если нужна будет помощь, пишите нам в техподдержку, с радостью проконсультируем.

Хостинг для Python

с бесплатной поддержкой

Telegram Hostpro

Наш телеграм

с важными анонсами, розыгрышами и мемами

Присоединиться

Возможно, вас заинтересует

Причины возникновения ошибки 502. Как ее исправить?

Причины возникновения ошибки 502. Как ее исправить?

Ошибки 5хх означают проблемы на стороне сервера. Если говорить конкретно об ошибке 502, то...

Ruslan Holovatiuk | Обновлено: 30.10.2024

Причины возникновения ошибки 403. Как исправить?

Причины возникновения ошибки 403. Как исправить?

Для большинства пользователей интернета не слишком принципиально, почему они не могут попасть на сайт....

Ruslan Holovatiuk | Обновлено: 23.10.2024

Причины возникновения ошибки 508. Как исправить?

Причины возникновения ошибки 508. Как исправить?

Ошибка 508: Resource Limit Is Reached обычно означает, что ваша учетная запись превысила назначенные...

Ruslan Holovatiuk | Обновлено: 15.10.2024

Как вставить картинку в HTML и оптимизировать ее для лучшего ранжирования в Google 

Как вставить картинку в HTML и оптимизировать ее для лучшего ранжирования в Google 

Согласитесь, визуальные эффекты играют важную роль в создании привлекательного и функционального интерфейса. В этой...

Hostpro Company | Обновлено: 26.09.2024