Откуда импортируется модуль django?

Начал изучать django, и в туториалах по нему люди пишут такое:

from django.http import HttpResponse

Не могу понять откуда взялся модуль django, ведь в папке django-проекта файла "django.py" нет?


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

Автор решения: eri

django обычно лежит в /usr/lib/python3.8/site-packages/django или для виндовс в C:\Users\user\AppData\Local\Programs\Python38\Lib\site-packages\django или C:\Python38\Lib\site-packages\django

Посмотреть список папок, где могут быть установленны модули можно функцией в питон

import sys
for p in sys.path:
    print(p)
→ Ссылка
Автор решения: vlashu

При импорте модуля интерпретатор сначала ищёт встроенный модуль с таким именем. Если такого модуля нет, то идёт поиск файла в списке директорий, определённых в переменной sys.path. Если в директории нет django.py поиск пойдет по папке lib, где и будет найден. Более подробно можно ознакомиться с процессом в документации к import

→ Ссылка
Автор решения: V-Mor

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

А вот если рядом модуля нет, происходит следующее: Python начинает искать модуль в специальном списке папок с модулями. Получить данный список можно так:

import sys
print(sys.path)

Он проходит по каждой папке в поисках нужного модуля.

При установке через pip, как уже отметили в комментарии, нужная папка автоматически добавляется в этот список. Также изначально, сразу после установки Python, в этом списке хранятся папки, содержащие стандартные модули, наподобие os, sys и time.

→ Ссылка