ImportError: Нет модуля с именем 'django.core.urlresolvers'
Привет, я работаю над проектом Django, где мне нужно создать форму для входных данных. Я попытался импортировать reverse
из django.core.urlresolvers
. Я получил ошибку:
line 2, in from django.core.urlresolvers import reverse ImportError: No module named 'django.core.urlresolvers'
Я использую Python 3.5.2, Django 2.0 и MySQL.
Ответы
Ответ 1
Django 2.0 удаляет модуль django.core.urlresolvers
, который был перемещен в django.urls
в версии 1.10. Вы должны изменить любой импорт, чтобы использовать вместо него django.urls, например так:
from django.urls import reverse
Обратите внимание, что Django 2.0 удаляет некоторые функции, которые ранее были в django.core.urlresolvers
, поэтому вам может потребоваться внести некоторые изменения, прежде чем ваш код заработает. Подробности об этих дополнительных изменениях см. В функциях, устаревших в 1.9.
Ответ 2
если вы хотите импортировать реверс, импортируйте его из django.urls
from django.urls import reverse
Ответ 3
Вам необходимо заменить все вхождения:
from django.core.urlresolvers import reverse
чтобы:
from django.urls import reverse
![enter image description here]()
ПРИМЕЧАНИЕ: то же самое относится к reverse_lazy
в Pycharm Cmd + Shift + R для начала замены в Path.
Ответ 4
Для тех, кто, возможно, пытается создать Travis сборки, путь по умолчанию, из которого установлен Django от requirements.txt
точек файлов в репозиторий, чей django_extensions
модуль не был обновлен. Единственный обходной путь, на данный момент, заключается в установке из основной ветки с помощью pip. Вот где патч сделан. Но сейчас нам придется подождать.
Вы можете попробовать это в то же время, это может помочь
- pip install git+https://github.com/chibisov/[email protected]
- pip install git+https://github.com/django-extensions/[email protected]
Ответ 5
используйте это:
from django.urls import reverse
Ответ 6
Если ваши сборки на TravisCI терпят неудачу по этой конкретной причине, вы можете решить эту проблему, обновив расширения Django в ваших файлах require.txt.
pip install --upgrade django-extensions
Это обновит расширения для использования модулей Django 2+.
Ответ 7
urlresolver был удален в более поздней версии Django - обновите установку django. Я исправил это с помощью следующей команды.
pip install django==2.0 --upgrade
Ответ 8
Используйте "из django.urls импорт в обратном порядке" в месте "из
django.core.urlresolvers импорт обратный "
Ответ 9
Вы можете создать символическую ссылку без проблем.
cd site-packages/django/core
ln -s ../urls/ urlresolvers
И все.
Это полезно для не обновленных пакетов, которые все еще выполняют поиск по старому пути.