ImportError: No module named 'django.core.urlresolvers'
Question:
I am working on Django project where I need to create a form for inputs. I tried to import reverse
from django.core.urlresolvers
. I got an error:
line 2, in from django.core.urlresolvers import reverse ImportError: No module named 'django.core.urlresolvers'
I am using Python 3.5.2, Django 2.0 and MySQL.
Answers:
Django 2.0 removes the django.core.urlresolvers
module, which was moved to django.urls
in version 1.10. You should change any import to use django.urls instead, like this:
from django.urls import reverse
Note that Django 2.0 removes some features that previously were in django.core.urlresolvers
, so you might have to make some more changes before your code works. See the features deprecated in 1.9 for details on those additional changes.
if you want to import reverse, import it from django.urls
from django.urls import reverse
For those who might be trying to create a Travis Build, the default path from which Django is installed from the requirements.txt
file points to a repo whose django_extensions
module has not been updated. The only workaround, for now, is to install from the master branch using pip. That is where the patch is made. But for now, we’ll have to wait.
You can try this in the meantime, it might help
- pip install git+https://github.com/chibisov/drf-extensions.git@master
- pip install git+https://github.com/django-extensions/django-extensions.git@master
If your builds on TravisCI are failing for this particular reason, you can resolve the issue by updating the Django Extensions in your requirements.txt
pip install --upgrade django-extensions
This will update the extensions to use Django 2+ modules.
urlresolver has been removed in the higher version of Django – Please upgrade your django installation. I fixed it using the following command.
pip install django==2.0 --upgrade
For django version greater than 2.0 use:
from django.urls import reverse
in your models.py file.
To solve this either you down-grade the Django
to any version lesser than 2.0.
pip
install Django==1.11.29
.
In my case the problem was that I had outdated django-stronghold
installed (0.2.9). And even though in the code I had:
from django.urls import reverse
I still encountered the error. After I upgraded the version to django-stronghold==0.4.0
the problem disappeard.
use from django.urls import reverse instead of from django.core.urlresolvers import reverse
Upgrading Django 1.9 (Python 2.7) to Django 3.2 (Python 3.9)
This could be solved in a one line bash replacement:
grep -ril "from django.core.urlresolvers" your_source_code_folder | xargs sed -i 's@from django.core.urlresolvers@from django.urls@g'
I had the same error, but that was just because of my url.py file.
I fixed it like below:
from drf_spectacular.views import (
SpectacularAPIView,
SpectacularSwaggerView,
)
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
path('api/schema/', SpectacularAPIView.as_view(), name='api-schema',),
path('api/docs/', SpectacularSwaggerView.as_view(url_name='api-schema'), name='api-docs',),
]
I am working on Django project where I need to create a form for inputs. I tried to import reverse
from django.core.urlresolvers
. I got an error:
line 2, in from django.core.urlresolvers import reverse ImportError: No module named 'django.core.urlresolvers'
I am using Python 3.5.2, Django 2.0 and MySQL.
Django 2.0 removes the django.core.urlresolvers
module, which was moved to django.urls
in version 1.10. You should change any import to use django.urls instead, like this:
from django.urls import reverse
Note that Django 2.0 removes some features that previously were in django.core.urlresolvers
, so you might have to make some more changes before your code works. See the features deprecated in 1.9 for details on those additional changes.
if you want to import reverse, import it from django.urls
from django.urls import reverse
For those who might be trying to create a Travis Build, the default path from which Django is installed from the requirements.txt
file points to a repo whose django_extensions
module has not been updated. The only workaround, for now, is to install from the master branch using pip. That is where the patch is made. But for now, we’ll have to wait.
You can try this in the meantime, it might help
- pip install git+https://github.com/chibisov/drf-extensions.git@master
- pip install git+https://github.com/django-extensions/django-extensions.git@master
If your builds on TravisCI are failing for this particular reason, you can resolve the issue by updating the Django Extensions in your requirements.txt
pip install --upgrade django-extensions
This will update the extensions to use Django 2+ modules.
urlresolver has been removed in the higher version of Django – Please upgrade your django installation. I fixed it using the following command.
pip install django==2.0 --upgrade
For django version greater than 2.0 use:
from django.urls import reverse
in your models.py file.
To solve this either you down-grade the Django
to any version lesser than 2.0.
install
pipDjango==1.11.29
.
In my case the problem was that I had outdated django-stronghold
installed (0.2.9). And even though in the code I had:
from django.urls import reverse
I still encountered the error. After I upgraded the version to django-stronghold==0.4.0
the problem disappeard.
use from django.urls import reverse instead of from django.core.urlresolvers import reverse
Upgrading Django 1.9 (Python 2.7) to Django 3.2 (Python 3.9)
This could be solved in a one line bash replacement:
grep -ril "from django.core.urlresolvers" your_source_code_folder | xargs sed -i 's@from django.core.urlresolvers@from django.urls@g'
I had the same error, but that was just because of my url.py file.
I fixed it like below:
from drf_spectacular.views import (
SpectacularAPIView,
SpectacularSwaggerView,
)
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
path('api/schema/', SpectacularAPIView.as_view(), name='api-schema',),
path('api/docs/', SpectacularSwaggerView.as_view(url_name='api-schema'), name='api-docs',),
]