Какие библиотеки установлены в питоне по-умолчанию?

Хочу очистить проект от лишних установленных библиотек. К сожалению, начал очистку тогда, когда еще не знал про возможность удаления библиотек вместе с зависимостями с помощью pip-autoremove. Так что теперь такая штука не работает и я наблюдаю у себя множество огрызков библиотек, которые мне вообще не нужны. Слышал что-то про файл requirements, но я его не создавал, так что по нему тоже не смогу сориентироваться. Список библиотек получаю через pip3 list. На текущий момент реально использую следующие библиотеки:

import psycopg2
import tqdm
from clickhouse_driver import Client
import datetime
from collections import defaultdict
import gc
from tornado.web import Application, RequestHandler
from tornado.ioloop import IOLoop
import json

Ответы (2 шт):

Автор решения: AivanF.

Встроенные модули

Список встроенных модлей из стандартной библиотеки Питона смотрите в докментации: The Python Standard Library.

Из перечисленных встроенными являются collections, datetime, gc, json. Остальные необходимо устанавливать отдельно, например, через пакетный менеджер Питона pip.


Порядок импортов

Помимо этого, в соответствии с официальными рекомендациями PEP, порядок подключения библиотек следует использовать такой:

  1. Стандартные библиотеки.
  2. Используемые сторонние модули.
  3. Локальные модули вашего приложения/библиотеки.

В некоторых источниках также советуют отделять несколько импортов из одного модуля, а импорты с общей приоритетностью сортировать в алфавитном порядке.

Например, вот так:

# Стандартные модули
from collections import defaultdict
import datetime
import gc
import json

# Сторонние модули
from clickhouse_driver import Client
import psycopg2
import tqdm

# Отдельно несколько строк с Торнадо
from tornado.web import Application, RequestHandler
from tornado.ioloop import IOLoop

Виртуальное окружение с зависимостями

Если в проекте много кода с разными зависимостями, то для выявления используемых библиотек следует использовать виртуальное окружение, например, модуль virtualenv. Виртуальное окружение позволяет инкапсулироваться от модулей, установленных в Питоне глобально, устанавливая библиотеки с нужными версиями в рамках конкретного проекта. По этой теме много статей как на английском, так и на русском. При запуске проекта в виртуальном окружении Вы увидите ошибки о недостающих библиотеках, которые нужно установить в локальном окружении проекта.

Однако виртуальные окружения существуют для использования модулей на месте, они не сохраняются в системах контроля версий. Для этого используется файл requirements.txt, в котором описываются нужные библиотеки и опционально их версии. Для быстрого создания этого файла можно заморозить текущие библиотеки из локального pip'a, а при создании нового окружения можно будет их легко установить из этого файла. Подробнее читайте в документации: PIP > User Guide > Requirements Files.

→ Ссылка
Автор решения: Сергей

В итоге решил просто удалить все пакеты кроме pip. Далее протестировал работоспособность проекта и на сообщения об ошибках просто доустанавливал необходимые пакеты. Размер проекта сократился с 250МБ до 46МБ. Никаких проблем не возникло.

→ Ссылка