Проверка установленных модулей и пакетов в окружении Python

Раздел: Python -> Управление библиотеками

Способы узнать состав установленных библиотек Python

Как получить полный список установленных пакетов с версиями?

Наиболее эффективным решением считается команда pip list, которая выводит все пакеты, установленные в текущем окружении Python, вместе с их версиями. Команда выполняется в терминале или командной строке.

pip list

версия библиотеки python (версия библиотеки python)

Результат выглядит как таблица с колонками Package и Version. Для удобства можно использовать флаг --format=columns (по умолчанию) или --format=json для машинной обработки.

Проблема: команда может показать пакеты не из того окружения, если не активировано виртуальное окружение. Решение: предварительно активировать нужное окружение (source venv/bin/activate на Linux/macOS или venv\Scripts\activate на Windows).

Типичная ошибка: pip не распознаётся как внешняя команда. Это происходит, если Python не добавлен в PATH. Решение: использовать python -m pip list вместо простого pip list.

Как создать файл зависимостей для воспроизведения окружения?

Команда pip freeze выводит список пакетов в формате, подходящем для requirements.txt. В отличие от pip list, она показывает только те пакеты, которые установлены через pip, и использует операторы сравнения версий (например, Django==5.0).

pip freeze > requirements.txt

установленные библиотеки python (установленные библиотеки python)

Этот файл затем используется для установки зависимостей на другом компьютере: pip install -r requirements.txt.

Проблема: pip freeze может включать лишние зависимости (зависимости зависимостей). Для точного контроля рекомендуется использовать pip-tools или poetry.

Как получить список установленных пакетов внутри кода Python?

Для программного доступа к списку используйте модуль importlib.metadata (Python 3.8+). Функция distributions() возвращает итератор по всем установленным дистрибутивам.

from importlib.metadata import distributions
for dist in distributions():
    print(dist.metadata['Name'], dist.version)

Python libraries (библиотеки python)

Этот метод работает без запуска внешних команд и удобен для интеграции в скрипты.

Проблема: в старых версиях Python (до 3.8) используется pkg_resources из setuptools. Миграция на importlib.metadata может быть неполной для некоторых пакетов.

Типичная ошибка: ModuleNotFoundError: No module named 'importlib.metadata'. Возникает в Python 3.7 и ниже. Решение: установить backport importlib_metadata через pip install importlib-metadata и импортировать его.

Как быстро проверить установку библиотеки в Jupyter Notebook?

В ячейке Jupyter можно использовать магическую команду %pip list или выполнить Python-код с !pip list. Также доступен графический интерфейс: вкладка Environments в Anaconda Navigator показывает все пакеты.

!pip list

Проблема: в Jupyter может выполняться ядро, привязанное к другому окружению. Решение: проверить путь к интерпретатору с помощью import sys; print(sys.executable).

Расширенные примеры работы со списками установленных библиотек

Пример 1: вывод списка пакетов в формате JSON для обработки скриптом.

Пример
pip list --format=json | python -c "import sys,json; data=json.load(sys.stdin); print('Количество пакетов:', len(data))"

Пример 2: получение только устаревших пакетов (требуется подключение к интернету).

Пример
pip list --outdated

Результат содержит три колонки: Package, Version, Latest.

Пример 3: программный сбор информации о пакетах с помощью importlib.metadata с фильтрацией.

Пример
from importlib.metadata import distributions, version
packages = {dist.metadata['Name']: dist.version for dist in distributions()}
# Показать только пакеты, начинающиеся с 'django'
django_packages = {k: v for k, v in packages.items() if 'django' in k.lower()}
print(django_packages)
{'django': '5.0.1', 'django-cors-headers': '4.0.0'}

Пример 4: сравнение двух файлов requirements.txt для выявления различий.

Пример
# Сначала генерируем списки
pip freeze > req1.txt
# активируем другое окружение
pip freeze > req2.txt
# затем скрипт сравнения
diff -u req1.txt req2.txt  # Linux/macOS или fc req1.txt req2.txt в Windows

Пример 5: использование pipdeptree для отображения дерева зависимостей.

Пример
pip install pipdeptree
pipdeptree

Пример 6: проверка конкретной библиотеки без вывода всего списка (например, версия pandas).

Пример
pip show pandas
Name: pandas
Version: 2.2.0
...

Пример 7: получение информации о местоположении пакетов.

Пример
pip list -v | grep -E "^Package|Location"  # на Linux/macOS
pip list --verbose | findstr "Location"     # на Windows

Пример 8: скрипт для аудита лицензий всех установленных пакетов.

Пример
from importlib.metadata import distributions
for dist in distributions():
    license_info = dist.metadata.get('License', 'Unknown')
    print(f"{dist.metadata['Name']}: {license_info}")

Установленные библиотеки Python - comments

En
установленные библиотеки python (python)