0

Не удается импортировать path из django.urls

20

Я попытался выполнить следующую команду:

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 ответ(ов)

0

Причина, по которой вы не можете импортировать path, заключается в том, что этот функционал появился только в Django 2.0, как указано в документации: https://docs.djangoproject.com/en/2.0/ref/urls/#path.

На этой странице в нижнем правом углу вы можете изменить версию документации на ту, которая у вас установлена. Если вы это сделаете, то увидите, что в документации версии 1.11 нет упоминания о path.

0

Для установки необходимой версии 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 до последней версии, а затем вы сможете убедиться, что версия установлена корректно.

0

Вместо использования пустой строки в качестве пути в вашем маршруте URL, рекомендуем использовать явный путь, например, '/', чтобы избежать неоднозначностей. Вот так может выглядеть ваш код после изменения:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.homepageview, name='home')
]

Здесь я использовал регулярное выражение r'^$', которое соответствует корневому пути вашего приложения (то есть /). Такой подход более читаем и лучше соответствует рекомендациям Django.

0

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.

0

Я поменял интерпретатор Python, и это сработало. На клавиатуре я нажал комбинацию клавиш Ctrl+Shift+P. В следующем окне я ввел команду Python: Select Interpreter, и мне представился выбор интерпретатора, который я хотел использовать. Из этого списка я выбрал интерпретатор Python, находящийся в моем виртуальном окружении. В данном случае это был ~\DevFolder\myenv\Scripts\python.exe.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь