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.

- Python pip windows (установка pip на windows)
- Apt get python (установка python через apt-get)
- Windows package python (установка пакетов python на windows)

Расширенные примеры использования 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

Press  to 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, не требуя прав суперпользователя. Это снижает риск конфликтов с системными пакетами.

Установка Python через apt-get - comments

En
Apt get python (python)