Практическое руководство по развертыванию Python на Linux
Основной способ: установка 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