ImportError:没有名为' django.core.urlresolvers'

时间:2017-03-31 11:02:29

标签: django python-3.x python-3.5 django-2.0

您好我正在处理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。

13 个答案:

答案 0 :(得分:218)

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

答案 1 :(得分:52)

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

导入
from django.urls import reverse

答案 2 :(得分:15)

您需要替换所有出现的:

from django.core.urlresolvers import reverse

为:

from django.urls import reverse

enter image description here

注意:这同样适用于reverse_lazy

in Pycharm Cmd + Shift + R ,用于在Path中开始重播。

答案 3 :(得分:1)

对于那些可能试图创建Travis构建的用户,从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

答案 4 :(得分:1)

使用这个:

from django.urls import reverse

答案 5 :(得分:1)

对于大于2.0的Django版本,请使用:

from django.urls import reverse

在您的models.py文件中。

答案 6 :(得分:1)

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

答案 7 :(得分:0)

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

pip install --upgrade django-extensions

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

答案 8 :(得分:0)

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

pip install django==2.0 --upgrade

答案 9 :(得分:0)

就我而言,问题是我安装的django-stronghold已过时(0.2.9)。即使在代码中,我也有:

from django.urls import reverse

我仍然遇到错误。将版本升级到django-stronghold==0.4.0后,问题消失了。

答案 10 :(得分:0)

使用django.urls中的导入反向,而不是使用django.core.urlresolvers中的导入反向

答案 11 :(得分:0)

将 Django 1.9 (Python 2.7) 升级到 Django 3.2 (Python 3.9)

这可以用一行 bash 替换来解决:

grep -ril "from django.core.urlresolvers" your_source_code_folder | xargs sed -i 's@from django.core.urlresolvers@from django.urls@g'

答案 12 :(得分:-4)

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

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

这就是全部。

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