Использование pip
Не одобряю подобные инструменты, т.к. предпочитаю использовать в своих программах минимум внешних зависимостей, опакечивать недостающие модули и помещать их в собственный репозиторий. Но этим инструментом пользуются другие, поэтому при работе с их проектами приходится его использовать.
Если необходимо воспользоваться pip, то настоятельно рекомендую пользоваться им вместе с другим инструментом - virtualenv. Это позволит устанавливать сторонние модули не прямо в системные каталоги, а в специальный изолированный каталог. Таким образом установленные для какого-то проекта модули Python не будут конфликтовать с установленными в системе, что позволит содержать систему в чистоте и избавиться от множества головной боли.
Установка модулей
Установить необходимый модуль можно следующим образом:
$ pip install pip
Проекты на Python обычно сопровождаются файлом requirements.txt, в котором указаны имена всех требуемых модулей и их версии. Для их установки можно воспользоваться следующей командой:
$ pip install -r requirements.txt
Для установки некоторых модулей, написанных не на чистом Python, а использующих системные библиотеки, потребуется установить в систему недостающие заголовочные файлы. Например, для сборки модуля psycopg2 нужны заголовочные файлы, находящиеся в пакетах libpq-dev и python-dev (или в его более специфичных вариантах, например python3.7-dev). Внимательно читайте сообщения об ошибках и устанавливайте в систему недостающие пакеты при помощи системного пакетного менеджера, например - при помощи apt-get.
Обновление модулей
Чтобы обновить модуль, например ldap3, до более свейжей версии, можно воспользоваться одной из команд:
$ pip install --upgrade ldap3
$ pip install -U ldap3
Просмотр установленных модулей
Посмотреть список установленных модулей можно так:
$ pip list
Посмотреть список актуальных модулей, для которых нет новых версий, можно следующим образом:
$ pip list -u
Чтобы увидеть модули, которые можно обновить до более свежих версий, можно воспользоваться такой командой:
$ pip list -o
Команда просмотра списка установленных модулей принимает опцию --format
, при помощи которой можно указать желаемый формат вывода. По умолчанию команда использует поколоночный вывод, который можно указать явным образом, вот так:
$ pip list --format=columns
Чтобы использовать устаревший формат по умолчанию, можно указать ключевое слово legacy. Для вывода в формате, используемом командой pip freeze, можно указать ключевое слово freeze. Для вывода в формате JSON можно воспользоваться ключевым словом json.
Чтобы увидеть список модулей, которые не требуются другим модулям, можно воспользоваться опцией --not-required
:
$ pip list --not-required
Скорее всего именно какие-то из этих модулей действительно являются необходимыми зависимостями для проекта, а остальные были установлены как зависимые от них.
Формирование файла зависимостей
Для того, чтобы сформировать такой файл, содержащий все установленные модули, можно воспользоваться следующей командой:
$ pip freeze > requirements.txt
Будьте внимательны и очищайте этот файл от модулей, которые установлены, но не требуются проекту для нормальной работы.