Практическое руководство по развертыванию Python на Linux

Раздел: Администрирование -> Установка и обновление Python

Основной способ: установка Python из репозитория дистрибутива

Как быстро получить рабочую версию Python с pip на Ubuntu/Debian?

sudo apt update
sudo apt install python3 python3-pip -y

установить python через pip (установка python на linux)

После выполнения команды python3 --version покажет установленную версию. pip3 --version подтвердит наличие менеджера пакетов. Этот метод подходит, если не требуется самая свежая версия Python, а достаточно стабильной из репозитория.

Типичная ошибка: пакет python3-pip не найден.

Решение: подключить universe-репозиторий или установить pip через get-pip.py. Например:

sudo add-apt-repository universe
sudo apt update
sudo apt install python3-pip

Как установить Python на CentOS/RHEL через yum или dnf?

# CentOS 7
yum install epel-release -y
yum install python3 python3-pip -y

# Fedora / RHEL 8+
dnf install python3 python3-pip -y

На CentOS 7 по умолчанию Python 2.7, поэтому требуется EPEL. Для получения Python 3.6+ этого достаточно.

Проблема: yum не находит пакет python3-pip.

Решение: установить pip с помощью curl и get-pip.py:

sudo yum install python3
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py

Как установить конкретную версию Python, например 3.9, через deadsnakes PPA?

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.9 python3.9-distutils python3.9-dev

После установки python3.9 --version покажет 3.9.x. Для получения pip для этой версии нужно установить его отдельно:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.9 get-pip.py

Этот вариант позволяет использовать несколько версий Python на одной системе.

Ошибка: add-apt-repository: command not found.

Установите пакет software-properties-common:

sudo apt install software-properties-common

Как собрать Python из исходных кодов для максимального контроля?

sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev
wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz
tar -xf Python-3.10.11.tgz
cd Python-3.10.11
./configure --enable-optimizations
make -j $(nproc)
sudo make altinstall  # не заменяет системный python

Флаг --enable-optimizations ускоряет выполнение, но удлиняет компиляцию. make altinstall устанавливает python3.10 без перезаписи команды python3. После установки pip доступен через python3.10 -m pip.

Проблема: ошибки при компиляции из-за отсутствия зависимостей.

Установите все перечисленные пакеты build-essential и библиотеки. Если пропущен openssl, pip может не работать с https.

Как управлять несколькими версиями Python с помощью pyenv?

# Установка зависимостей
sudo apt update; sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git

# Установка pyenv
curl https://pyenv.run | bash

# Добавление в .bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

# Установка Python 3.11 через pyenv
pyenv install 3.11.0
pyenv global 3.11.0  # или pyenv local 3.11.0 в проекте

Pyenv изолирует версии и автоматически настраивает pip для каждой. Не требует sudo.

Ошибка: pyenv не компилируется из-за отсутствия SSL.

Убедитесь, что установлен libssl-dev. Для старых версий Ubuntu может потребоваться libssl1.0-dev.

Расширенные примеры с демонстрацией результатов

Пример 1: установка Python 3.9 из deadsnakes и проверка работы pip для этой версии.

Пример
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
sudo apt install python3.9 python3.9-distutils -y
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.9 get-pip.py
pip3.9 --version
pip 24.0 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9)

Пример 2: установка Python 3.10 из исходников с оптимизациями и проверка производительности.

Пример
cd /tmp
wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz
tar xzf Python-3.10.11.tgz
cd Python-3.10.11
./configure --enable-optimizations --prefix=/opt/python3.10
make -j$(nproc)
sudo make altinstall
/opt/python3.10/bin/python3.10 -m pip --version
pip 21.3.1 from /opt/python3.10/lib/python3.10/site-packages/pip (python 3.10)

Пример 3: создание виртуального окружения для изолированной установки пакетов.

Пример
python3 -m venv myenv
source myenv/bin/activate
(myenv) python --version
(myenv) pip install requests
(myenv) pip list
Python 3.8.10
Package    Version
---------- -------
pip        20.0.2
requests   2.25.1
setuptools 44.0.0

Пример 4: переключение между версиями Python через pyenv.

Пример
pyenv install 3.8.12
pyenv install 3.11.0
pyenv versions
pyenv global 3.11.0
python --version
pyenv global 3.8.12
python --version
  3.8.12
  3.11.0
Python 3.11.0
Python 3.8.12

Пример 5: устранение ошибки SSL при использовании pip после сборки из исходников.

Пример
# если pip не может загружать пакеты с https, переустановите его с явным указанием сертификатов
python3 -m pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org requests
Successfully installed requests-2.28.1

Или обновите certifi: pip install --upgrade certifi

Установка Python на Linux - comments

En
установить python через pip (python)