Управление пакетами в Python

Краткий справочник по работе с пакетами Python.

Способы установки python-пакетов

С помощью системного менеджера пакетов APT или YUM

sudo yum install python3-requests

С помощью python-модуля pip

Если на машине установлена только одна версия python, или установка производится в активированном виртуальном окружении, то можно установить пакет/ы следующим образом:

pip install wheel requests

Узнать к какой версии Python принадлежит pip:

[[email protected] ~]$ pip -V
pip 20.3.4 from /usr/lib/python2.7/site-packages/pip (python 2.7)

Исключающее ошибку в версии Python установка пакетов с использованием pip:

python3.8 -m pip install airflow

Ручная сборка python-пакета

Установка пакетов в виртуальное окружение

Создадим каталог для Python-проекта, где развернём виртуальное окружение, активируем его, после чего установим пакет wheel:

[[email protected] ~]$ mkdir -p ~/pythonprojects/airflow
[[email protected] ~]$ cd ~/pythonprojects/airflow
[[email protected] ~]$ python3.6 -m venv .
[[email protected] ~]$ source bin/activate
(airflow) [[email protected] ~]$ pip -V
pip 18.1 from /root/pythonprojects/airflow/lib64/python3.6/site-packages/pip (python 3.6)
(airflow) [[email protected] ~]$ pip install wheel
Collecting wheel
  Using cached wheel-0.37.1-py2.py3-none-any.whl (35 kB)
Installing collected packages: wheel
Successfully installed wheel-0.37.1

Адреса директорий с установленными пакетами

  1. Пакеты, добавляемые через yum, устанавливаются в зависимости от версии Python, например в /usr/lib/python3.6 и доступны для всей системы.
  2. Пакеты, добавляемые через sudo pip install, размещаются там же, как в примере выше.
  3. Пакеты, добавляемые через sudo pip install --user, устанавливаются в зависимости от версии Python, например в /root/.local/lib/python3.8, и доступны только для аккаунта root.
  4. Пакеты, добавляемые через pip install, устанавливаются в зависимости от версии Python, например в ~/.local/lib/python3.8, то есть в домашний каталог пользователя и доступны только пользователю.
  5. Пакеты, устанавливаемые в виртуальном окружении, размещаются в этом же каталоге, где развёрнут ‘venv’, точнее в подкаталоге ./lib/python3.8.

Способы обновления пакетов

Обновление pip

pip install --upgrade pip

Принудительное обновление пакета, который установлен через yum

ERROR: Cannot uninstall 'systemd-python'. It is a distutils installed project
and thus we cannot accurately determine which files belong to it which would
lead to only a partial uninstall.
pip install --ignore-installed systemd-python

Способы удаления всех пакетов

Способ с сохранением списка пакетов

Остаётся возможность восстановления всех пакетов из списка. Сохраняем список, удаляем пакеты, устанавливаем пакеты:

pip freeze > requirements.txt
pip uninstall -r requirements.txt -y
pip install -r requirements.txt

Удаление всех пакетов без сохранения списка

pip uninstall -y -r <(pip freeze)

или

pip freeze | xargs pip uninstall -y