Как установить Python на Linux
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 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), мы изолируем пакеты нашего приложения от глобальных системных пакетов:
Для того, чтобы выйти из виртуального окружения, выполняйте следующую команду:
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 можно по следующему примеру:
pyenv install 3.12.2
После этого проверьте, какие версии уже установлены:
pyenv versions
Теперь вы можете устанавливать версии Python для каждого вашего проекта отдельно. Для этого перейдите в директорию вашего проекта:
cd /path/to/project/
И следующей командой, на уровне командной оболочки, установите версию Python, которую вы предварительно установили через команду pyenv install
:
pyenv local 3.10.3
Находясь в директории можно проверить, корректно ли была установлена версия для вашего проекта через команды pyenv version
или python -V
.
Вы можете заметить, что версия Python изменилась при выполнении той же команды, когда вы перейдете в другую директорию вашей системы:
Эта версия является глобальной и используется по умолчанию. Изменить ее вы можете выполнив следующую команду, при условии, что версия уже установлена через 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
.
Создав виртуальное окружение для нашего проекта, мы отделяем пакеты Python нашего отдельного приложения от глобальных пакетов и предотвращаем конфликты между ними. Например, на глобальной версии 3.12.2 у нас может быть установлен Django, а в виртуальном окружении на этой же версии – Flask:
Другие полезные команды
Покинуть виртуальное окружение:
pyenv deactivate
Просмотреть список виртуальных окружений:
pyenv virtualenvs
Удалить окружение:
pyenv virtualenv-remove venv_my_project
В завершение
Мы рассмотрели 3 различных способа установки версий Python на операционные системы Linux. По нашему мнению, самым удобным является установка через системный пакетный менеджер, ведь таким образом установка происходит за 2-3 команды.
В случае, когда на сервере размещается несколько различных приложений с различными версиями, лучше выбрать установку через Pyenv, также этот способ рекомендует и сообщество разработчиков Python. После всех настроек любую версию можно установить одной командой и сразу же начать ее использовать.
В HostPro вы можете выбрать хостинг для Python-проектов любых размеров. Если нужна будет помощь, пишите нам в техподдержку, с радостью проконсультируем.
Хостинг для Python
с бесплатной поддержкой
Возможно, вас заинтересует
Причины возникновения ошибки 502. Как ее исправить?
Ошибки 5хх означают проблемы на стороне сервера. Если говорить конкретно об ошибке 502, то...
Обновлено: 30.10.2024
|Причины возникновения ошибки 403. Как исправить?
Для большинства пользователей интернета не слишком принципиально, почему они не могут попасть на сайт....
Обновлено: 23.10.2024
|Причины возникновения ошибки 508. Как исправить?
Ошибка 508: Resource Limit Is Reached обычно означает, что ваша учетная запись превысила назначенные...
Обновлено: 15.10.2024
|Как вставить картинку в HTML и оптимизировать ее для лучшего ранжирования в Google
Согласитесь, визуальные эффекты играют важную роль в создании привлекательного и функционального интерфейса. В этой...
Обновлено: 26.09.2024
|
Наш телеграм
с важными анонсами, розыгрышами и мемами
Присоединиться