Как посмотреть какие пакеты установлены в текущем окружении Python
Одна из частых задач, которую приходиться решать с помощью менеджера пакетов pip — это задача узнать какие версии библиотек у нас установлены в каком-то окружении.
Сделать это можно с помощью такой команды, которая называется
pip freeze
Если мы ее выполним, мы увидим все те версии пакетов, которые у нас установлены и которые мы можем использовать. Эти пакеты в данном случае установлены глобально, в нашей операционной системе и мы можем с помощью команды import импортировать эти пакеты и использовать их в своих проектах.

Дмитрий Ченгаев
Занимаюсь заказной веб-разработкой. Подписывайтесь на телеграм канал https://t.me/dchengaev 😉
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Установленные библиотеки в Python 3

Небольшое справочное руководство позволяющие ответить на часто возникающий вопрос у новичков, какие установленные библиотеки в Python?
Введение
В процессе обучения программированию на языке Python новички частенько засоряют глобальное окружение языка установкой кучи разных библиотек. Но рано или поздно любопытство берет вверх и хочется посмотреть что там уже установлено. На самом деле задача очень простая и не стоит даже целой статьи, но все таки я часто вижу этот вопрос в телеграм каналах посвещенных Python разработке.
На самом деле существует два способа решения этой задачи, рассмотрим оба.
Способы посмотреть установленные библиотеки
Как я и сказал выше существует два способа проверить установленные библиотеки, рассмотрим их ниже
Используя pip
Самый простой, быстрый и эффективный вариант узнать какие библиотеки установлены в вашем Python выполнить следующую команду
pip freeze
Вывод программы можем быть весьма огромным как в моем случае. Мои установленные библиотеки :
aiodns==2.0.0 aiogram==2.11.2 aiohttp==3.7.3 appdirs==1.4.4 async-timeout==3.0.1 attrs==20.3.0 Babel==2.9.0 beautifulsoup4==4.9.3 black==20.8b1 brotlipy==0.7.0 cchardet==2.1.7 certifi==2020.12.5 cffi==1.14.4 chardet==3.0.4 click==7.1.2 flake8==3.8.4 idna==2.10 isort==5.7.0 joblib==1.0.1 loguru==0.5.3 lxml==4.6.2 mccabe==0.6.1 multidict==5.1.0 mypy-extensions==0.4.3 nltk==3.5 pathspec==0.8.1 pycares==3.1.1 pycodestyle==2.6.0 pycparser==2.20 pydeepl==0.13 PyExecJS==1.5.1 pyflakes==2.2.0 pytz==2020.5 regex==2020.11.13 requests==2.25.1 six==1.15.0 soupsieve==2.1 textblob==0.15.3 toml==0.10.2 tqdm==4.56.2 translators==4.7.13 typed-ast==1.4.2 typing-extensions==3.7.4.3 urllib3==1.26.2 yarl==1.6.3
Я очень долго не смотрел что у меня твориться в глобальном окружении, т.к часто пишу приложения для докер-контейнеров.
В глобальном окружении я стараюсь держать несколько библиотек, isort, flake8 и black.
Используя файловую систему
Python всегда устанавливает свои библиотеки в системную папку. Под рукой у меня сейчас есть только macOS и debian Linux, напишу пути для обоих OS
# debian /usr/lib/python3.7/ # macOS /Library/Frameworks/Python.framework/Versions/3.9/lib/
Заключение
Сегодня мы узнали как посмотреть установленные библиотеки в Python двумя разными способами, надеюсь вам понравилось — пишите комментарии.
Где хранятся модули в Python?

Система модулей даёт возможность логически организовать код на Python. Кроме того, группирование в модули значительно облегчает сам процесс написания кода, плюс делает его более понятным. В этой статье поговорим, что такое модуль в Python, где он хранится и как обрабатывается.
Модуль в Python — это файл, в котором содержится код на Python. Любой модуль в Python может включать в себя переменные, объявления функций и классов. Вдобавок ко всемe, в модуле может содержаться исполняемый код.
Команда import в Python
Позволяет использовать любой файл Python в качестве модуля в другом файле. Синтаксис прост:
import module_1[, module_2[. module_N]Как только Python-интерпретатор встречает команду import, он выполняет импорт модуля, если он есть в пути поиска Python. Что касается пути поиска Python, то речь идёт о списке директорий, в которых интерпретатор выполняет поиск перед загрузкой модуля. Посмотрите на пример кода при использовании модуля math:
import math # Используем функцию sqrt из модуля math print (math.sqrt(9)) # Печатаем значение переменной pi, определенной в math print (math.pi)Помните, что модуль загружается только один раз, вне зависимости от того, какое количество раз вы его импортировали. Таким образом исключается цикличное выполнение содержимого модуля.
Команда from . import
Команда from . import даёт возможность выполнить импорт не всего модуля целиком, а лишь конкретного его содержимого:
# Импортируем из модуля math функцию sqrt from math import sqrt # Выводим результат выполнения функции sqrt. # Нам больше незачем указывать имя модуля print (sqrt(144)) # Но мы уже не можем получить из модуля то, что не импортировали print (pi) # Выдаст ошибкуОбратите внимание, что выражение from . import не импортирует модуль полностью, а лишь предоставляет доступ к объектам, указанным нами.
Команда from . import *
Также в Python мы можем импортировать из модуля переменные, классы и функции за один раз. Чтобы это выполнить, применяется конструкция from . import *:
from math import * # Теперь у нас есть доступ ко всем функция и переменным, определенным в модуле math print (sqrt(121)) print (pi) print (e)Использовать данную конструкцию нужно осторожно, ведь при импорте нескольких модулей можно запутаться в собственном коде.
Так где хранятся модули в Python?
При импорте модуля, интерпретатор Python пытается найти модуль в следующих местах: 1. Директория, где находится файл, в котором вызывается команда импорта. 2. Директория, определённая в консольной переменной PYTHONPATH (если модуль не найден с первого раза). 3. Путь, заданный по умолчанию (если модуль не найден в предыдущих двух случаях).
Что касается пути поиска, то он сохраняется в переменной path в системном модуле sys. А переменная sys.path включает в себя все 3 вышеописанных места поиска.
Получаем список всех модулей Python
Чтобы получить полный список модулей, установленных на ПК, используют команду help("modules") .
Создаём свой модуль в Python
Для создания собственного модуля в Python нужно сохранить ваш скрипт с расширением .py. После этого он станет доступным в любом другом файле. Давайте создадим 2 файла: module_1.py и module_2.py, а потом сохраним их в одной директории. В первом файле запишем:
def hello(): print ("Hello from module_1")А во втором вызовем функцию:
from module_1 import hello hello()После выполнения кода 2-го файла получим:
Hello from module_1Функция dir() в Python
Возвратит отсортированный список строк с содержанием всех имён, определенных в модуле.
# на данный момент нам доступны лишь встроенные функции dir() # импортируем модуль math import math # теперь модуль math в списке доступных имен dir() # получим имена, определенные в модуле math dir(math)
Пакеты модулей в Python
Несколько файлов-модулей с кодом можно объединить в пакеты модулей. Пакет модулей — это директория, включающая в себя несколько отдельных файлов-скриптов.
Представьте, что у нас следующая структура:
|_ my_file.py |_ my_package |_ __init__.py |_ inside_file.pyВ файле inside_file.py определена некоторая функция foo. В итоге, дабы получить доступ к этой функции, в файле my_file нужно выполнить:
from my_package.inside_file import fooТакже нужно обратить внимание на то, есть ли внутри директории my_package файл init.py. Это может быть и пустой файл, сообщающий Python, что директория является пакетом модулей. В Python 3 включать файл init.py в пакет модулей уже не обязательно, но мы рекомендуем всё же делать это, чтобы обеспечить обратную совместимость.
Как посмотреть установленные модули Python и вывести их список
Иногда мы работаем в чужой системе, и нам нужно завершить наш проект там. Когда нам нужно установить все необходимые модули в эту систему, ситуация становится еще более напряженной. На самом деле все сложнее, когда нам приходится начинать с нуля, или когда мы находимся в середине нашего проекта. Или что кто-то другой работает в нашей системой для своего собственного проекта.
Поэтому в такие моменты или во многих других случаях мы хотим знать, какие модули уже присутствуют в системе, чтоб не тратить драгоценное время на повторное использование команд установки для них.
Это также полезно, когда мы хотим выполнить определенное действие в нашей программе, и знаем, что эти модули присутствуют в системе. Мы можем использовать эти функции для выполнения нашей конкретной задачи.
В этом руководстве мы узнаем, как мы можем посмотреть и проверить установленные модули Python в системе и получить список всех установленных модулей, чтобы нам не приходилось тратить больше времени.
Проверка всех установленных модулей Python
В этом разделе мы собираемся использовать следующие два способа, чтобы проверить все установленные модули Python в нашей системе и получить их список:
- Проверить все локально установленные модули Python.
- Проверить все установленные модули Python.
Метод 1: проверка всех локально установленных модулей Python
Если мы хотим проверить только локально установленные модули Python, это очень просто. Мы должны открыть нашу оболочку Python (где отображаются выходные данные) или мы даже можем выполнить эту задачу в записной книжке Jupyter и лаборатории Jupyter.
В оболочке Python (или в записной книжке Jupyter и лаборатории Jupyter) мы должны написать следующую команду внутри оболочки:
>> help('modules')Когда мы нажимаем клавишу ввода после написания указанной выше команды, оболочка Python начнет загружать имена всех локально установленных модулей Python в нашей системе, и мы можем увидеть следующее окно состояния на нашем экране:
Как мы видим, список всех локально установленных модулей Python загружается, и оболочке Python потребуется некоторое время, чтобы получить имена их всех. Нам нужно немного подождать, и после этого она отобразит все локально установленные модули Python в нашей системе, как мы можем видеть на следующем экране вывода:
Здесь мы можем увидеть имена всех локально установленных модулей Python, присутствующих в нашей системе, и мы также можем сохранить их для использования в будущем.
Метод 2: проверка всех установленных модулей Python
Чтобы проверить все установленные модули Python, мы можем использовать следующие две команды с ‘pip’:
- Использование команды ‘pip freeze’.
- Использование команды pip list.
Давайте воспользуемся обеими командами, чтобы лучше понять их реализацию.
- Использование команды pip freeze: мы должны использовать эту команду внутри терминала командной строки нашего устройства. Сначала мы должны открыть терминал командной строки, а затем мы должны написать в нем команду pip, а после этого мы должны нажать клавишу ввода. Когда мы нажимаем клавишу ввода, установщик pip начнет собирать список всех установленных модулей Python, и через некоторое время он покажет нам список, как показано ниже:

- Использование команды pip list: если в нашей системе установлен установщик pip версии 1.3 или более поздней, то мы также можем использовать этот метод для получения списка всех установленных модулей Python. Как и в предыдущем методе, нам просто нужно написать команду pip list в терминале командной строки нашего устройства и нажать клавишу ввода.
Когда мы нажимаем клавишу ввода, установщик pip начнет собирать список всех установленных модулей Python, и через некоторое время он покажет нам список, как показано ниже:

Здесь мы изменили команду ‘pip list’ на ‘pip list– format = column’, чтобы мы могли получить список всех установленных модулей Python в нашей системе в форматах столбцов.
Вывод
В этом руководстве мы узнали, насколько важно, чтобы у нас был список всех установленных модулей в нашей или в какой-то другой системе. Затем мы изучили все методы, с помощью которых мы можем получить список всех модулей Python.
Мы узнали о различных методах для локальных, а также всех модулей Python, установленных в системе, и использовали эти методы, чтобы понять их реализацию.




