ImportError: nenhum módulo chamado 'django.core.urlresolvers'


167

Estou trabalhando no projeto Django, onde preciso criar um formulário para entradas. Eu tentei importarreverse de django.core.urlresolvers. Eu recebi um erro:

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

Estou usando Python 3.5.2, Django 2.0 e MySQL.


1
parece que o django não está instalado no seu PATH.
Håken Lid

Respostas:


347

O Django 2.0 remove o django.core.urlresolversmódulo, que foi movido para a django.urlsversão 1.10. Você deve alterar qualquer importação para usar o django.urls , assim:

from django.urls import reverse

Observe que o Django 2.0 remove alguns recursos que estavam anteriormente django.core.urlresolvers, então você pode precisar fazer mais algumas alterações antes que seu código funcione. Veja os recursos preteridos em 1.9 para obter detalhes sobre essas alterações adicionais.


1
Eu tenho esse erro em um módulo de terceiros: como posso resolver? Eu poderia editar o módulo, mas e quando atualizo uma nova versão não corrigida? É possível substituir?
Fabio

Você pode atualizar e enviar uma solicitação de recebimento para o terceiro módulo do partido
Gajit

62

Se você deseja importar reverso, importe-o de django.urls

from django.urls import reverse

27

Você precisa substituir todas as ocorrências de:

from django.core.urlresolvers import reverse

para:

from django.urls import reverse

insira a descrição da imagem aqui

NOTA: O mesmo se aplica a reverse_lazy

no Pycharm Cmd+ Shift+ R para iniciar a substituição no Path.


Eu obtive o mesmo erro, tentei isso e agora recebo o arquivo "C: \ Users \ displ \ Code \ .virtualenvs \ dev \ lib \ pacotes de sites \ cms \ utils \ i18n.py", linha 4, no <module> de django.core.urlresolvers import get_resolver, LocaleRegexURLResolver ModuleNotFoundError: Nenhum módulo chamado 'django.core.urlresolvers' teve que fazer a resposta correta que dizia substituir todas as referências. No entanto, o Django é péssimo, muitas coisas não funcionam desde o início.
22318 Rich Bianco

3

Para aqueles que podem estar tentando criar um Travis Build, o caminho padrão a partir do qual o Django é instalado a partir do requirements.txtarquivo aponta para um repositório cujo django_extensionsmódulo não foi atualizado. A única solução alternativa, por enquanto, é instalar a partir da ramificação principal usando o pip. É aí que o patch é feito. Mas, por enquanto, teremos que esperar.

Enquanto isso, você pode tentar fazer isso.

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

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



2

Para a versão do django maior que 2.0, use:

from django.urls import reverse

no seu arquivo models.py.


1

Se suas compilações no TravisCI estão falhando por esse motivo específico, você pode resolver o problema atualizando as extensões do Django nos seus requisitos.txt

pip install --upgrade django-extensions

Isso atualizará as extensões para usar os módulos do Django 2+.


1

O urlresolver foi removido na versão superior do Django - Atualize sua instalação do django. Corrigi-o usando o seguinte comando.

pip install django==2.0 --upgrade

1

Para resolver isso, você reduz o nível Djangopara qualquer versão menor que a 2.0. pipinstalação Django==1.11.29.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.