Не получается импортировать библиотеку
Пишу на Django, хочу импортировать views в файл urls.
from django.urls import path
from .views import *
# import views
urlpatterns = [
path('', index, name='home'),
]
Этот не выкидывает ошибку, но если пытаюсь импортировать так:
from django.urls import path
# from .views import *
import views
urlpatterns = [
path('', views.index, name='home'),
]
Ты python кидает ошибку: ModuleNotFoundError: No module named 'views'
Совершенно не понимаю в чем может быть проблема.
UPD:
Нашел решение сразу как написал вопрос). Вот так все работает.
from django.urls import path
# from .views import *
from blog import views
urlpatterns = [
path('', views.index, name='home'),
]
Осталось понять почему.
Ответы (1 шт):
Дело в том, что мы запускаем сервер через manage.py. У нас рабочая директория та, где расположен manage.py. Импорт ищет по путям из sys.path. А там нет директории, в которой находится views.py.
Поэтому и используются импорты с точкой. Это относительные импорты. Они указывают, что модуль надо искать в той же директории, в которой находится текущий модуль, откуда этот импорт и производится. А две точки говорят, что надо искать на уровень выше.