ImportError: ningún módulo llamado 'django.core.urlresolvers'

167

Estoy trabajando en el proyecto Django donde necesito crear un formulario para entradas. Traté de importar reversedesde django.core.urlresolvers. Recibí un error:

line 2, in from django.core.urlresolvers import reverse ImportError: No module named 'django.core.urlresolvers'

Estoy usando Python 3.5.2, Django 2.0 y MySQL.

viratayya salimath
fuente
1
Parece que django no está instalado en su RUTA.
Håken Lid

Respuestas:

347

Django 2.0 elimina el django.core.urlresolversmódulo, que se movió a la django.urlsversión 1.10. Debería cambiar cualquier importación para usar django.urls en su lugar, así:

from django.urls import reverse

Tenga en cuenta que Django 2.0 elimina algunas características que anteriormente se encontraban django.core.urlresolvers, por lo que es posible que deba realizar algunos cambios más antes de que su código funcione. Consulte las características en desuso en 1.9 para obtener detalles sobre esos cambios adicionales.

knbk
fuente
1
Tengo este error en un módulo de terceros: ¿cómo puedo resolverlo? Podría editar el módulo, pero ¿qué sucede entonces cuando actualizo una nueva versión sin corregir? ¿Es posible anular?
fabio
Puede actualizar y enviar una solicitud de extracción al módulo de terceros
Gajit
62

si desea importar al revés, impórtelo desde django.urls

from django.urls import reverse
Surajano
fuente
27

Necesita reemplazar todas las ocurrencias de:

from django.core.urlresolvers import reverse

a:

from django.urls import reverse

ingrese la descripción de la imagen aquí

NOTA: Lo mismo se aplica a reverse_lazy

en Pycharm Cmd+ Shift+ R para iniciar el reemplazo en Path.

andilabs
fuente
Obtuve el mismo error, probé esto y ahora recibo el archivo de error "C: \ Users \ displ \ Code \ .virtualenvs \ dev \ lib \ site-packages \ cms \ utils \ i18n.py", línea 4, en <module> de django.core.urlresolvers import get_resolver, LocaleRegexURLResolver ModuleNotFoundError: Ningún módulo llamado 'django.core.urlresolvers' tuvo que hacer lo que la respuesta correcta decía reemplazar todas las referencias. Sin embargo, Django apesta, muchas cosas no funcionan desde el principio.
Rich Bianco
3

Para aquellos que podrían estar tratando de crear una Travis Build, la ruta predeterminada desde la que se instala Django desde el requirements.txtarchivo apunta a un repositorio cuyo django_extensionsmódulo no se ha actualizado. La única solución, por ahora, es instalar desde la rama maestra usando pip. Ahí es donde se hace el parche. Pero por ahora, tendremos que esperar.

Mientras tanto, puede intentar esto, podría ayudar

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

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

emalinga
fuente
2

usa este:

from django.urls import reverse
naimur rahman
fuente
2

Para la versión de django mayor que 2.0 use:

from django.urls import reverse

en su archivo models.py.

Kazi Imam Hasan
fuente
1

Si sus compilaciones en TravisCI fallan por este motivo en particular, puede resolver el problema actualizando las Extensiones de Django en sus requisitos.txt

pip install --upgrade django-extensions

Esto actualizará las extensiones para usar módulos Django 2+.

willieswanjala
fuente
1

urlresolver se ha eliminado en la versión superior de Django. Actualice su instalación de django. Lo arreglé usando el siguiente comando.

pip install django==2.0 --upgrade
Bapuray
fuente
1

Para resolver esto, puede reducir la Djangoversión a cualquier versión menor que la 2.0. pipinstalación Django==1.11.29.

usuario13070322
fuente