ImportError: nessun modulo denominato "django.core.urlresolvers"


167

Sto lavorando al progetto Django in cui devo creare un modulo per gli input. Ho provato a importare reverseda django.core.urlresolvers. Ho ricevuto un errore:

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

Sto usando Python 3.5.2, Django 2.0 e MySQL.


1
sembra che django non sia installato sul tuo PERCORSO.
Håken Lid

Risposte:


347

Django 2.0 rimuove il django.core.urlresolversmodulo, che è stato spostato django.urlsnella versione 1.10. Dovresti cambiare qualsiasi importazione per usare invece django.urls , in questo modo:

from django.urls import reverse

Nota che Django 2.0 rimuove alcune funzionalità precedentemente presenti django.core.urlresolvers, quindi potresti dover apportare ulteriori modifiche prima che il tuo codice funzioni . Vedere le funzionalità deprecate in 1.9 per i dettagli su tali modifiche aggiuntive.


1
Ho questo errore in un modulo di terze parti: come posso risolvere? Potrei modificare il modulo ma cosa succede quando aggiorno una nuova versione non corretta? È possibile eseguire l'override?
fabio

È possibile aggiornare e inviare una richiesta pull al modulo di terze parti
Gajit l'

62

se si desidera importare il contrario, importarlo da django.urls

from django.urls import reverse

27

È necessario sostituire tutte le occorrenze di:

from django.core.urlresolvers import reverse

per:

from django.urls import reverse

inserisci qui la descrizione dell'immagine

NOTA: lo stesso vale per reverse_lazy

in Pycharm Cmd+ Shift+ R per iniziare la sostituzione in Path.


Ho avuto lo stesso errore, ho provato questo e ora ottengo l'errore File "C: \ Users \ displ \ Code \ .virtualenvs \ dev \ lib \ site-pacchetti \ cms \ utils \ i18n.py", riga 4, in <module> da django.core.urlresolvers import get_resolver, LocaleRegexURLResolver ModuleNotFoundError: nessun modulo chiamato 'django.core.urlresolvers', doveva fare ciò che la risposta corretta diceva sostituire tutti i riferimenti. Django fa schifo però, molte cose non funzionano da subito.
Rich Bianco,

3

Per coloro che potrebbero tentare di creare una build Travis, il percorso predefinito da cui è installato Django dal requirements.txtfile punta a un repository il cui django_extensionsmodulo non è stato aggiornato. L'unica soluzione alternativa, per ora, è l'installazione dal ramo master tramite pip. È qui che viene creata la patch. Ma per ora, dovremo aspettare.

Puoi provarlo nel frattempo, potrebbe aiutare

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

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



2

Per la versione di django successiva alla 2.0 usare:

from django.urls import reverse

nel tuo file models.py.


1

Se le tue build su TravisCI non riescono per questo particolare motivo, puoi risolvere il problema aggiornando le estensioni di Django nei tuoi requisiti.txt

pip install --upgrade django-extensions

Questo aggiornerà le estensioni per usare i moduli Django 2+.


1

urlresolver è stato rimosso nella versione successiva di Django - Aggiorna la tua installazione di django. L'ho risolto usando il seguente comando.

pip install django==2.0 --upgrade

1

Per risolvere questo problema, declassare Djangoa qualsiasi versione inferiore 2.0. pipall'installazione Django==1.11.29.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.