Использование 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

Будьте внимательны и очищайте этот файл от модулей, которые установлены, но не требуются проекту для нормальной работы.