ImportError: Aucun module nommé 'django.core.urlresolvers'




python-3.x python-3.5 (6)

Bonjour, je travaille sur le projet Django où je dois créer un formulaire pour les entrées. J'ai essayé d'importer l' reverse de django.core.urlresolvers . J'ai une erreur:

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

J'utilise Python 3.5.2, Django 2.0 et MySQL.


Django 2.0 supprime le module django.core.urlresolvers , qui a été déplacé vers django.urls dans la version 1.10. Vous devriez changer n'importe quelle importation pour utiliser django.urls place, comme ceci:

from django.urls import reverse

Notez que Django 2.0 supprime certaines fonctionnalités qui se trouvaient auparavant dans django.core.urlresolvers . Vous django.core.urlresolvers donc peut-être effectuer quelques modifications supplémentaires avant que votre code ne fonctionne. Voir les fonctionnalités déconseillées dans 1.9 pour plus de détails sur ces modifications supplémentaires.


Pour ceux qui pourraient essayer de créer une version de Travis, le chemin par défaut à partir duquel le fichier est installé, Django, pointe vers un django_extensions dont le module django_extensions n'a pas été mis à jour. Pour l'instant, la seule solution de contournement consiste à installer à partir de la branche principale à l'aide de pip. C'est là que le patch est fait. Mais pour l'instant, il faudra attendre.

Vous pouvez essayer en attendant, cela pourrait aider

- pip install git+https://github.com/chibisov/[email protected]

- pip install git+https://github.com/django-extensions/[email protected]


Vous devez remplacer toutes les occurrences de:

from django.core.urlresolvers import reverse

à:

from django.urls import reverse

NOTE: La même chose s'applique à reverse_lazy

dans Pycharm Cmd + Shift + R pour commencer le remplacement dans Path.


Vous pouvez créer un lien symbolique sans problème.

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

Et c'est tout.

Ceci est utile pour les paquets non mis à jour qui recherchent toujours dans l'ancien chemin.


urlresolver a été supprimé de la version supérieure de Django - Veuillez mettre à jour votre installation de Django. Je l'ai corrigé en utilisant la commande suivante.

pip install django==2.0 --upgrade

utiliser celui-ci:

from django.urls import reverse




django-2.0