ImportError:没有名为“ django.core.urlresolvers”的模块


167

我正在Django项目中工作,我需要在其中创建输入表单。我试图导入reversedjango.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尚未安装在您的PATH上。
哈肯·利德

Answers:


347

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中弃用功能


1
我在第三方模块中遇到此错误:如何解决?我可以编辑模块,但是当我升级新的未更正版本时该怎么办?是否可以覆盖?
fabio

您可以更新提取请求并将其发送到第三方模块
Gajit

62

如果要导入反向,请从 django.urls

from django.urls import reverse

27

您需要替换所有出现的情况:

from django.core.urlresolvers import reverse

至:

from django.urls import reverse

在此处输入图片说明

注意:这同样适用于reverse_lazy

在Pycharm Cmd+ Shift+ R 在路径开始replacment。


我遇到了同样的错误,尝试过此问题,现在在<module>中的第4行中,从第4行获取错误文件“ C:\ Users \ displ \ Code \ .virtualenvs \ dev \ lib \ site-packages \ cms \ utils \ i18n.py” django.core.urlresolvers导入get_resolver,LocaleRegexURLResolver ModuleNotFoundError:没有名为“ django.core.urlresolvers”的模块,必须做正确的回答说要替换所有引用。Django有点烂,但是很多东西一开始都不起作用。
Rich Bianco

3

对于可能正在尝试创建Travis Build的用户,从requirements.txt文件安装Django的默认路径指向django_extensions未更新模块的回购。目前唯一的解决方法是使用pip从master分支安装。那就是制作补丁的地方。但是目前,我们必须等待。

您可以在此期间尝试此操作,这可能会有所帮助

- pip install git+https://github.com/chibisov/drf-extensions.git@master

- pip install git+https://github.com/django-extensions/django-extensions.git@master




1

如果由于这个特定原因在TravisCI上构建失败,则可以通过更新requirements.txt中的Django Extensions解决此问题。

pip install --upgrade django-extensions

这将更新扩展以使用Django 2+模块。


1

urlresolver已在更高版本的Django中删除-请升级django安装。我使用以下命令修复了它。

pip install django==2.0 --upgrade

1

要解决此问题,您可以将降级Django到小于2.0. pipinstall的任何版本Django==1.11.29

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.