Python и apt-get: практическое руководство администратора
Основные способы установки Python с помощью apt-get
Наиболее эффективное решение: установка стандартной версии Python 3 и сопутствующих утилит
Этот способ подходит для большинства современных дистрибутивов Linux (Ubuntu, Debian, Mint) и обеспечивает получение поддерживаемой версии Python 3 вместе с менеджером пакетов pip и модулем для создания виртуальных окружений. Цель - получить рабочую среду для разработки или выполнения скриптов с минимальными усилиями.
Как установить Python 3 вместе с pip и поддержкой виртуальных окружений?
sudo apt update
sudo apt install python3 python3-pip python3-venv
Visual studio code библиотеки python (управление библиотеками в visual studio code)
Пояснение шагов:
sudo apt update- обновление списка доступных пакетов из репозиториев. Без этой команды установка может завершиться ошибкой, если кэш устарел.sudo apt install python3 python3-pip python3-venv- установка интерпретатора Python 3, менеджера пакетов pip и модуля для создания виртуальных окружений. Пакет python3-venv необходим для изоляции зависимостей проекта.
Типичные ошибки и их решения
Ошибка: E: Unable to locate package python3-pip. Возникает, если репозиторий не содержит пакета (например, в Ubuntu minimal) или кэш не обновлён.
Решение: Выполнить sudo apt update и, если пакет всё ещё не найден, проверить подключение репозитория universe командой sudo add-apt-repository universe (для Ubuntu).
Ошибка: python3-pip : Depends: python3-distutils but it is not installable. Возникает при попытке установить pip для версии Python, для которой нет пакета distutils в репозитории.
Решение: Установить отдельно python3-distutils (например, sudo apt install python3-distutils) или использовать более полную версию Python (например, из PPA deadsnakes).
Вариант 1: Установка конкретной версии Python (например, 3.10) из дополнительного репозитория
Случаи использования: когда требуется версия Python, отсутствующая в официальных репозиториях дистрибутива (например, Python 3.10 на Ubuntu 20.04, где по умолчанию только 3.8).
Как установить Python 3.10, если в стандартных репозиториях его нет?
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-distutils
Update lib python (обновление библиотек python)
Пояснение шагов:
sudo add-apt-repository ppa:deadsnakes/ppa- добавление PPA-репозитория, содержащего множество версий Python. Если команда отсутствует, требуется установка пакетаsoftware-properties-common.- После обновления списка пакетов выполняется установка конкретной версии с указанием суффикса (3.10). Дополнительно устанавливаются
python3.10-venv(для виртуальных окружений) иpython3.10-distutils(для работы pip).
Возможные проблемы
Ошибка: add-apt-repository: command not found. Устанавливается пакет software-properties-common командой sudo apt install software-properties-common.
Ошибка: The following packages have unmet dependencies: python3.10-distutils : Depends: python3-distutils. Решение: установить сначала python3-distutils из системного репозитория, либо игнорировать этот пакет, если pip не требуется.
Вариант 2: Установка Python 2 для поддержки устаревших проектов
Случаи использования: запуск или поддержка скриптов, написанных на Python 2, которые не были переведены на Python 3.
Что делать, если требуется Python 2 на современном дистрибутиве?
sudo apt update
sudo apt install python2
Python packages list (список установленных пакетов)
В некоторых дистрибутивах (например, Ubuntu 20.04+) пакет python2 не входит в состав основного репозитория и может находиться в разделе universe. Для его установки может потребоваться сначала включить репозиторий universe: sudo add-apt-repository universe и повторить установку.
Проблемы и решения
Ошибка: Package python2 is not available, but is referred to by another package. Решение: проверить наличие пакета командой apt search python2; возможно, он называется python2.7. В некоторых дистрибутивах Python 2 полностью удалён из репозиториев - тогда следует установить его из сторонних источников (например, snap: sudo snap install python2).
Ошибка: python2 : Depends: python2.7 (>= 2.7.17) but it is not installable. Решение: установить конкретную подверсию python2.7, если она доступна, или использовать альтернативные методы (snap, pyenv).
Вариант 3: Установка дополнительных инструментов и модулей Python
Случаи использования: расширение базовой установки Python для работы с базами данных, веб-фреймворками или системными библиотеками.
Как установить pip для конкретной версии Python, если она установлена отдельно?
# Для Python 3.8, установленного из репозитория
sudo apt install python3-pip
# Для Python 3.10, установленного вручную через PPA
python3.10 -m pip install --user somepackage
Пакет python3-pip автоматически настраивает pip для системной версии Python 3. Для альтернативных версий pip следует запускать явно: python3.10 -m pip. Если требуется установить системный пакет для конкретной версии, можно использовать sudo apt install python3.10-* для поиска соответствующих пакетов.
Частая проблема
pip не работает после установки Python 3 из репозитория: возникает, если пакет python3-pip не был установлен. Решение: sudo apt install python3-pip или, для альтернативной версии, ручная установка pip через python3.10 -m ensurepip --upgrade.
Расширенные примеры использования apt-get для установки Python
# Пример 1: установка Python 3.11 из PPA deadsnakes с полным набором инструментов
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
sudo apt install python3.11 python3.11-venv python3.11-distutils python3.11-dev -y
# Проверка установки
python3.11 --version
Python 3.11.9
Пояснение: Пакет python3.11-dev включает заголовочные файлы, необходимые для компиляции расширений C. Флаг -y автоматически подтверждает установку. После установки создаётся виртуальное окружение с использованием python3.11 -m venv myenv.
# Пример 2: установка нескольких версий Python (3.9 и 3.10) с переключением через update-alternatives
sudo apt install python3.9 python3.10
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
# Выбор активной версии вручную
sudo update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/python3.10 2 auto mode 1 /usr/bin/python3.9 1 manual mode 2 /usr/bin/python3.10 2 manual mode Pressto keep the current choice[*], or type selection number:
Пояснение: Механизм update-alternatives позволяет переключать системный интерпретатор Python 3 между установленными версиями. Этот метод полезен в средах, где разные проекты требуют разных версий.
# Пример 3: устранение конфликта зависимостей при установке python3.10-venv
sudo apt install python3.10-venv
# Если возникает ошибка о недостающих зависимостях, например, python3.10-distutils
sudo apt install python3.10-distutils python3.10 -f # флаг -f пытается исправить сломанные зависимости
Reading package lists... Done Building dependency tree... Done The following additional packages will be installed: python3.10-distutils Suggested packages: python3.10-doc Recommended packages: python3.10-dev The following NEW packages will be installed: python3.10-distutils python3.10-venv 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Пояснение: Флаг -f (fix-broken) автоматически разрешает неудовлетворённые зависимости. В данном случае он доустанавливает python3.10-distutils.
# Пример 4: установка модулей Python через pip, установленный с помощью apt-get, в локальный каталог пользователя
sudo apt install python3-pip
pip3 install --user numpy pandas matplotlib
# Проверка установленных пакетов
pip3 list --user
Package Version --------------- ------- numpy 1.26.0 pandas 2.1.0 matplotlib 3.7.2
Пояснение: Ключ --user устанавливает пакеты в каталог ~/.local/lib/python3.x/site-packages, не требуя прав суперпользователя. Это снижает риск конфликтов с системными пакетами.