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

问题描述 投票:103回答:8

嗨,我正在研究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。

django python-3.x python-3.5 django-2.0
8个回答
228
投票

Django 2.0删除了django.core.urlresolvers模块,该模块在版本1.10中被移动到django.urls。您应该更改任何导入以使用django.urls,如下所示:

from django.urls import reverse

请注意,Django 2.0删除了以前在django.core.urlresolvers中的一些功能,因此您可能需要在代码工作之前进行一些更改。有关这些其他更改的详细信息,请参阅features deprecated in 1.9


54
投票

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

from django.urls import reverse

16
投票

您需要替换所有出现的:

from django.core.urlresolvers import reverse

至:

from django.urls import reverse

enter image description here

注意:这同样适用于reverse_lazy

在Pycharm Cmd + Shift + R中用于在Path中开始替换。


2
投票

对于那些可能尝试创建Travis Build的人来说,从requirements.txt文件安装Django的默认路径指向一个尚未更新django_extensions模块的repo。目前唯一的解决方法是使用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
投票

使用这个:

from django.urls import reverse

0
投票

如果由于特殊原因导致TravisCI上的构建失败,您可以通过更新requirements.txt中的Django Extensions来解决此问题。

pip install --upgrade django-extensions

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


0
投票

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

pip install django==2.0 --upgrade

-4
投票

您可以毫无问题地创建符号链接。

cd site-packages/django/core
ln -s ../urls/ urlresolvers

就这样。

这对于仍在旧路径中搜索的未更新包非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.