ModuleNotFoundError: Нет модуля с именем 'django.shortcuts'

Я создаю сайт книжного магазина, используя фреймворк Django, и эта ошибка не может быть устранена после различных предыдущих решений на StackOverflow.

Файл "E:\django\bookstore\book\urls.py", строка 3, in from django.contrib.auth import views as auth_views Файл "E:\django\env\lib\site-packages\django\contrib\auth\views.py", строка 9, in from django.contrib.auth.decorators import login_required Файл "E:\django\env\lib\site-packages\django\contrib\auth\decorators.py", строка 7, in from django.shortcuts import resolve_url ModuleNotFoundError: Нет модуля с именем 'django.shortcuts'

вот мой views.py

from django.shortcuts import render,redirect
from django.http import HttpResponse
from django.contrib.auth import login,logout,authenticate
from .models import *
from .forms import *

Кроме этого у меня есть еще 2 конфигурационных файла venv в директории env. что с ними делать. нужно ли удалять один?

введите описание изображения здесь

Возможно, что в среде, в которой вы запускаете проект, не установлены django-shortcuts

Используйте эту команду для установки и повторного запуска проекта.

pip install django-shortcuts

Или вы можете следовать документации: django-shortcuts

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

Вы не можете иметь 2 окружения в одном каталоге с одинаковыми именами. I полагаю, что у вас нет нескольких env, как следует из скриншота, и в дире env оба файла имеют разные расширения, вам не нужно удалять ни один из них.

django.shortcuts - это не пакет django-shortcuts. Это следующее:

enter image description here

Если ваш пакет django не содержит его, не могли бы вы попробовать переустановить django?

enter image description here

enter image description here

enter image description here

Вернуться на верх