Установленные пакеты Python: все способы просмотра и управления

Раздел: Библиотеки -> Пакеты

Обзор способов получения списка установленных библиотек

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

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

Самым надёжным и быстрым способом является использование встроенной утилиты pip с командой pip list. Она выводит таблицу, содержащую названия пакетов и установленные версии.

pip list

Visual studio code библиотеки python (управление библиотеками в visual studio code)

Пример вывода:

Package    Version
---------- -------
click      8.1.3
Flask      2.2.2
numpy      1.23.5
...

Update lib python (обновление библиотек python)

Команда показывает все пакеты, установленные через pip, а также пакеты из site-packages, которые были установлены иными способами. Для просмотра только пакетов, установленных через pip, можно добавить флаг --pip (доступен в новых версиях).

Часто используемые модификации:

  • pip list --format columns – явно задать табличный вывод.
  • pip list --outdated – показать пакеты, для которых есть новые версии.
  • pip list --format json – вывод в формате JSON для автоматической обработки.

Проблема: если в системе установлено много пакетов, вывод может быть огромным. Решение: перенаправить вывод в grep (Linux/macOS) или findstr (Windows). Например:

pip list | grep numpy

Python packages list (список установленных пакетов)

Ошибка 'pip' не является внутренней или внешней командой – означает, что pip не добавлен в PATH. Решение: переустановить Python, отметив опцию «Add Python to PATH», или указывать полный путь к исполняемому файлу pip.

Как получить список в формате, пригодном для requirements.txt?

Команда pip freeze выдаёт установленные пакеты в том виде, в котором они обычно записываются в файл требований – с указанием версий через операторы == или >=.

pip freeze

Remove python package (удаление пакета python)

Пример вывода:

click==8.1.3
Flask==2.2.2
numpy==1.23.5

Python pip install windows (установка пакетов pip в windows)

Этот вывод удобно сразу сохранять в requirements.txt:

pip freeze > requirements.txt

Python pip windows (установка pip на windows)

Отличие от pip list: pip freeze не показывает пакеты, которые были установлены не через pip, а например, через менеджер пакетов системы. Также он включает только пакеты, явно установленные пользователем, и их зависимости. Иногда отсутствуют некоторые пакеты, если они были установлены в режиме --editable. Решение: для таких случаев лучше использовать pip list --format=freeze (в новых версиях) или комбинировать оба подхода.

Как увидеть зависимости между пакетами в виде дерева?

Сторонний пакет pipdeptree отображает иерархию зависимостей. Он не входит в стандартную поставку, поэтому предварительно устанавливается:

pip install pipdeptree

Apt get python (установка python через apt-get)

Затем выполняется:

pipdeptree

Windows package python (установка пакетов python на windows)

Пример вывода:

Flask==2.2.2
  - click [required: >=8.0, installed: 8.1.3]
  - itsdangerous [required: >=2.0, installed: 2.1.2]
  - Jinja2 [required: >=3.0, installed: 3.1.2]
  - MarkupSafe [required: >=2.0, installed: 2.1.1]

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

Возможные ошибки: если дерево очень большое, удобно использовать флаг --packages для фильтрации по конкретному пакету. Также pipdeptree не отображает циклические зависимости (редкий случай). Если команда не найдена, пакет не установлен. Решение: проверить, выполнен ли pip install pipdeptree в том же окружении.

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

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

import importlib.metadata

packages = importlib.metadata.distributions()
for pkg in packages:
    print(pkg.metadata['Name'], pkg.version)

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

Пример вывода:

click 8.1.3
Flask 2.2.2
numpy 1.23.5

установить библиотеку python visual studio (установка библиотек python в visual studio)

Для старых версий Python используется pkg_resources:

import pkg_resources

for pkg in pkg_resources.working_set:
    print(pkg.project_name, pkg.version)

Pip idle python (установка пакетов pip в idle)

Проблема: importlib.metadata может не включать некоторые пакеты, установленные не как дистрибутивы (например, в режиме разработчика). Решение: дополнительно обходить директорию site-packages, но это менее надёжно. Также в pkg_resources возникала медленная работа при большом количестве пакетов; рекомендуется использовать importlib.metadata.

Как получить список пакетов в окружении Anaconda/Miniconda?

Пользователи conda-окружений могут выполнить команду conda list, которая выводит пакеты, установленные через conda, а также через pip (если они были установлены после активации окружения).

conda list

Python pip path (путь к pip в python)

Пример вывода:

# packages in environment at /opt/conda/envs/myenv:
#
# Name                    Version                   Build  Channel
click                     8.1.3            pyhd8ed1ab_0    conda-forge
flask                     2.2.2            pyhd8ed1ab_0    conda-forge

Uv python windows (установка и использование uv в python на windows)

Для экспорта в формате YAML используется conda env export.

Если conda list не показывает пакеты, установленные через pip, это может быть связано с тем, что pip был вызван вне активированного окружения. Решение: активировать окружение conda activate myenv перед выполнением. Также может потребоваться установка pip внутри окружения.

Можно ли посмотреть пакеты через файловый менеджер?

Все установленные пакеты хранятся в директории site-packages. Её расположение зависит от интерпретатора. Узнать путь можно командой:

python -c "import site; print(site.getsitepackages())"

Python setup py install (установка пакета python с setup.py)

В этой папке находятся папки пакетов и файлы метаданных. Этот способ рассматривается как резервный, так как не даёт версионной информации в удобном виде.

Проблема: в папке могут находиться не только пакеты, но и другие файлы. Версии пакетов можно извлечь только просматривая файлы METADATA внутри папки *.dist-info. Для автоматизации лучше использовать программные методы.

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

Команда pip check проверяет зависимости: она сообщает о несовместимостях, отсутствующих или неправильных версиях зависимых пакетов. Хотя она не выдаёт список всех пакетов, она полезна для диагностики.

pip check

Python pip update package (обновление пакета через pip update)

Пример вывода при проблемах:

flask 2.2.2 requires itsdangerous>=2.0, but you have itsdangerous 1.1.0 which is incompatible.
Если после установки пакетов возникают ошибки импорта, pip check помогает локализовать причину. Решение: обновить или переустановить конфликтующие пакеты.
- Python install package version (установка пакета определенной версии в python)
- Python module not found (модуль python не найден)
- команда для установки python (команда для установки python)

Подробные и нестандартные примеры

Для углублённого понимания представлены расширенные примеры использования команд и кода.

Мощный фильтр с помощью pip list и grep

Выборка пакетов, содержащих определённую подстроку в имени (например, все пакеты с flask):

Пример
pip list | grep -i flask

Результат:

flask 2.2.2
flask-cors 3.0.10

Экспорт в JSON для автоматической обработки

Пример
pip list --format json > packages.json

Содержимое packages.json (фрагмент):

[
  {"name": "click", "version": "8.1.3"},
  {"name": "flask", "version": "2.2.2"}
]

Использование pip freeze с исключением версий

Чтобы не фиксировать версии, а получить только имена (для базового requirements), можно отредактировать вывод или использовать --exclude-editable:

Пример
pip freeze | sed 's/==.*//' > requirements_nover.txt

Результат (только имена):

click
flask
numpy

Детальное дерево зависимостей для одного пакета

Пример
pipdeptree --packages numpy

Вывод:

numpy==1.23.5

(если numpy не имеет зависимостей)

Получение информации о лицензии пакета через importlib.metadata

Пример
import importlib.metadata as md
pkg = md.metadata('flask')
print(pkg['License'])

Результат:

BSD-3-Clause

Сравнение пакетов между двумя окружениями

Сохранить списки в файлы и использовать diff:

Пример
# окружение 1
pip freeze > env1.txt
# окружение 2
pip freeze > env2.txt
diff env1.txt env2.txt

Вывод покажет добавленные, удалённые и изменённые пакеты.

Поиск установленного пакета в конкретной папке

Если пакет отсутствует в списке pip, но физически лежит в site-packages, можно проверить наличие модуля:

Пример
python -c "import sys; sys.path.insert(0,'.'); import alib; print(alib.__file__)"

Результат (если найдено):

/usr/lib/python3.10/site-packages/alib/__init__.py

Использование conda list в эксплицитном формате

Пример
conda list --explicit

Выдаёт URLs пакетов, что удобно для точного воспроизведения окружения.

Проверка зависимостей устаревших пакетов

Пример
pip list --outdated --format=columns

Вывод:

Package   Version Latest Type
numpy     1.23.5  1.24.0 wheel
requests  2.25.0  2.28.1 wheel

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

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