Управление пакетами в 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
Адреса директорий с установленными пакетами
- Пакеты, добавляемые через
yum
, устанавливаются в зависимости от версии Python, например в/usr/lib/python3.6
и доступны для всей системы. - Пакеты, добавляемые через
sudo pip install
, размещаются там же, как в примере выше. - Пакеты, добавляемые через
sudo pip install --user
, устанавливаются в зависимости от версии Python, например в/root/.local/lib/python3.8
, и доступны только для аккаунтаroot
. - Пакеты, добавляемые через
pip install
, устанавливаются в зависимости от версии Python, например в~/.local/lib/python3.8
, то есть в домашний каталог пользователя и доступны только пользователю. - Пакеты, устанавливаемые в виртуальном окружении, размещаются в этом же каталоге, где развёрнут ‘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