ImportError: geen module met de naam ‘django.core.urlresolvers’

Ik werk aan een Django-project waar ik een formulier voor invoer moet maken. Ik heb geprobeerd reversete importeren van django.core.urlresolvers. Ik kreeg een foutmelding:

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

Ik gebruik Python 3.5.2, Django 2.0 en MySQL.


Antwoord 1, autoriteit 100%

Django 2.0 verwijdert de module django.core.urlresolvers, die in versie 1.10 naar django.urlsis verplaatst. U moet elke import wijzigen om django.urlste gebruiken in plaats daarvan, zoals dit:

from django.urls import reverse

Houd er rekening mee dat Django 2.0 enkele functies verwijdert die voorheen in django.core.urlresolverszaten, dus het kan zijn dat je nog wat wijzigingen moet aanbrengen voordat je code werkt. Zie de functies die zijn beëindigd in 1.9voor details over die aanvullende wijzigingen.


Antwoord 2, autoriteit 15%

als je omgekeerd wilt importeren, importeer het dan van django.urls

from django.urls import reverse

Antwoord 3, autoriteit 7%

U moet alle exemplaren van:

. vervangen

from django.core.urlresolvers import reverse

naar:

from django.urls import reverse

Opmerking: hetzelfde is van toepassing op reverse_lazy

In Pycharm CMD + SHIFT + R voor het starten van vervanging op pad.


Antwoord 4

Voor degenen die mogelijk proberen een travis-build te maken, is het standaardpad van waaruit Django is geïnstalleerd in de requirements.txtbestandspunten naar een repo wiens django_extensionsmodule is niet bijgewerkt. De enige oplossing, voor nu, is het installeren van de Master Branch met PIP. Dat is waar de patch is gemaakt. Maar voor nu moeten we wachten.

U kunt dit ondertussen proberen, het kan

helpen

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

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


Antwoord 5

Voor Django-versie groter dan 2.0 gebruik:

from django.urls import reverse

in uw modellen.py-bestand.


Antwoord 6

Gebruik deze:

from django.urls import reverse

Antwoord 7

Urlresolver is verwijderd in de hogere versie van Django - upgrade uw Django-installatie. Ik heb het opgelost met behulp van de volgende opdracht.

pip install django==2.0 --upgrade

Antwoord 8

Gebruik van django.urls importeren omgekeerd in plaats van van django.core.urlresolvers importeren omgekeerd


Antwoord 9

Als uw bouw op Travisci op deze specifieke reden falen, kunt u het probleem oplossen door de Django-extensies bij te werken in uw vereisten. TXT

pip install --upgrade django-extensions

Hiermee wordt de extensies bijgewerkt om Django 2+ modules te gebruiken.


Antwoord 10

Om dit op te lossen, is u de Djangonaar elke versie in minder dan 2.0.
pip
Installeer Django==1.11.29.


Antwoord 11

In mijn geval was het probleem dat ik verouderd had django-strongholdgeïnstalleerd (0.2.9). En hoewel ik in de code had:

from django.urls import reverse

Ik heb nog steeds de fout aangetroffen. Nadat ik de versie heb geüpgraded naar django-stronghold==0.4.0het probleem verdwijnt.


Antwoord 12

Upgrading Django 1.9 (Python 2.7) naar Django 3.2 (Python 3.9)

Dit kan worden opgelost in een One Line Bash-vervanging:

grep -ril "from django.core.urlresolvers" your_source_code_folder | xargs sed -i 's@from django.core.urlresolvers@from django.urls@g'

Other episodes