Не удается импортировать path из django.urls
Я попытался выполнить следующую команду:
from django.urls import path
Но получаю ошибку:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name 'path'
Я использую версию Django 1.11. Как исправить эту ошибку?
5 ответ(ов)
Причина, по которой вы не можете импортировать path
, заключается в том, что этот функционал появился только в Django 2.0, как указано в документации: https://docs.djangoproject.com/en/2.0/ref/urls/#path.
На этой странице в нижнем правом углу вы можете изменить версию документации на ту, которая у вас установлена. Если вы это сделаете, то увидите, что в документации версии 1.11
нет упоминания о path
.
Для установки необходимой версии Django (в данном случае, версии 2), используйте следующие команды:
pip install --upgrade django
pip3 install --upgrade django
После этого вы можете проверить установленную версию Django с помощью команд:
python -m django --version # 2.0.2
python3 -m django --version # 2.0.2
Эти команды помогут вам обновить Django до последней версии, а затем вы сможете убедиться, что версия установлена корректно.
Вместо использования пустой строки в качестве пути в вашем маршруте URL, рекомендуем использовать явный путь, например, '/'
, чтобы избежать неоднозначностей. Вот так может выглядеть ваш код после изменения:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.homepageview, name='home')
]
Здесь я использовал регулярное выражение r'^$'
, которое соответствует корневому пути вашего приложения (то есть /
). Такой подход более читаем и лучше соответствует рекомендациям Django.
Python 2 не поддерживает Django 2. На Mac, после установки Python 3 и Django 2, выполните следующую команду в терминале, чтобы запустить ваше приложение с использованием правильного пути:
python3 manage.py runserver
Даже если вы обновили систему и используете Mac, по умолчанию при вводе следующей команды будет запущен Python 2:
python manage.py runserver
В этом случае версия Django окажется некорректной, и вы столкнетесь с ошибками импорта для path
. Убедитесь, что вы всегда используете python3
для запуска своих приложений с Django 2.
Я поменял интерпретатор Python, и это сработало. На клавиатуре я нажал комбинацию клавиш Ctrl+Shift+P. В следующем окне я ввел команду Python: Select Interpreter
, и мне представился выбор интерпретатора, который я хотел использовать. Из этого списка я выбрал интерпретатор Python, находящийся в моем виртуальном окружении. В данном случае это был ~\DevFolder\myenv\Scripts\python.exe
.
Фиксация количества знаков после запятой с помощью f-строк
Ошибка: "'dict' объект не имеет метода 'iteritems'"
'pip' не распознан как командa внутреннего или внешнего формата
Доступ к атрибутам на литералах работает для всех типов, кроме `int`; почему?
Преобразование байтового массива обратно в массив numpy