Python

Как узнать, какие библиотеки установлены в Python: pip list, pip freeze и окружения

Чтобы посмотреть установленные библиотеки Python, используйте команду python -m pip list. Она покажет пакеты и версии в том окружении, к которому относится текущий Python. Это важная оговорка: на компьютере может быть несколько Python и несколько виртуальных окружений, поэтому список библиотек зависит от того, какой Python вы запустили

python -m pip list

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

Package    Version
---------- -------
pip        24.2
requests   2.32.3

Если вы работаете на macOS или Linux и команда python ведет не туда, попробуйте python3 -m pip list

Почему лучше писать python -m pip list

Команда pip list тоже может работать, но форма python -m pip list надежнее. Она запускает pip через конкретный Python, поэтому меньше риск посмотреть библиотеки не того окружения

python --version
python -m pip --version

В выводе pip --version будет путь к папке site-packages. Если вы активировали .venv, путь должен вести внутрь виртуального окружения проекта

Как посмотреть библиотеки в виртуальном окружении

Сначала активируйте окружение

.venv\Scripts\Activate.ps1
python -m pip list
source .venv/bin/activate
python -m pip list

Если до активации список один, а после активации другой — это нормально. В этом и смысл виртуального окружения: каждый проект может иметь свой набор библиотек

pip list и pip freeze: в чем разница

pip list удобен для просмотра человеком. Он показывает аккуратную таблицу с пакетами и версиями

python -m pip list

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

python -m pip freeze > requirements.txt

Файл requirements.txt получится примерно таким

requests==2.32.3
beautifulsoup4==4.12.3

Если вы просто хотите посмотреть, что установлено, используйте pip list. Если хотите подготовить файл зависимостей проекта, используйте pip freeze, но внимательно смотрите, не попали ли туда лишние пакеты из старого окружения

Как проверить конкретную библиотеку

Для одного пакета удобнее pip show

python -m pip show requests

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

Как вывести список библиотек из Python-кода

Для обычного просмотра лучше использовать терминал, но иногда список пакетов нужен внутри программы. В современных версиях Python можно использовать importlib.metadata

from importlib.metadata import distributions

for package in distributions():
    print(package.metadata["Name"], package.version)

Такой код полезен для диагностики окружения, но новичку обычно достаточно команд pip list и pip show

Почему библиотека установлена, но import не работает

Чаще всего вы установили пакет в одно окружение, а запускаете код в другом. Проверьте путь к Python в коде

import sys
print(sys.executable)

И сравните с командой

python -m pip --version

Если пути разные, нужно активировать правильное окружение или выбрать правильный интерпретатор в редакторе

Мини-задача

Создайте новое окружение, посмотрите список библиотек, установите requests и посмотрите список еще раз

mkdir pip-list-test
cd pip-list-test
python -m venv .venv
source .venv/bin/activate
python -m pip list
python -m pip install requests
python -m pip list
python -m pip show requests

На Windows используйте активацию .venv\Scripts\Activate.ps1. После установки вы увидите не только requests, но и зависимости, которые нужны этой библиотеке. Это нормально: пакет может подтянуть другие пакеты автоматически

Частые ошибки

Вижу слишком много библиотек

Скорее всего, вы смотрите глобальный Python, а не чистое виртуальное окружение проекта. Создайте .venv, активируйте его и повторите python -m pip list

Библиотека есть в pip list, но код ее не видит

Редактор или терминал запускает другой Python. Проверьте sys.executable и выбранный интерпретатор

Думаю, что pip list показывает стандартную библиотеку

Нет. pip list показывает установленные пакеты из окружения, а не встроенные модули Python вроде os, sys, json, math

Что почитать дальше по Python

Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x