ImportError: Tidak ada modul bernama 'django.core.urlresolvers'

167

Saya sedang mengerjakan proyek Django di mana saya perlu membuat formulir untuk input. Saya mencoba mengimpor reversedari django.core.urlresolvers. Saya mendapat kesalahan:

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

Saya menggunakan Python 3.5.2, Django 2.0 dan MySQL.

salimath viratayya
sumber
1
Sepertinya Django tidak diinstal pada PATH Anda.
Håken Lid

Jawaban:

347

Django 2.0 menghapus django.core.urlresolversmodul, yang dipindahkan ke django.urlsdalam versi 1.10. Anda harus mengubah impor apa pun untuk menggunakan django.urls , seperti ini:

from django.urls import reverse

Perhatikan bahwa Django 2.0 menghapus beberapa fitur yang sebelumnya ada django.core.urlresolvers, jadi Anda mungkin harus membuat beberapa perubahan lagi sebelum kode Anda berfungsi. Lihat fitur yang ditinggalkan pada 1.9 untuk detail tentang perubahan tambahan itu.

knbk
sumber
1
Saya memiliki kesalahan ini dalam modul pihak ketiga: bagaimana saya bisa menyelesaikannya? Saya dapat mengedit modul tetapi bagaimana ketika saya memutakhirkan versi baru yang tidak dikoreksi? Apakah mungkin untuk menimpa?
Fabio
Anda dapat memperbarui dan mengirim permintaan tarik ke modul pihak ketiga
Gajit
62

jika Anda ingin mengimpor terbalik, impor dari django.urls

from django.urls import reverse
Surajano
sumber
27

Anda perlu mengganti semua kemunculan:

from django.core.urlresolvers import reverse

untuk:

from django.urls import reverse

masukkan deskripsi gambar di sini

CATATAN: Hal yang sama berlaku untuk reverse_lazy

di Pycharm Cmd+ Shift+ R untuk memulai penggantian di Path.

andilab
sumber
Saya mendapat kesalahan yang sama, mencoba ini dan sekarang mendapatkan kesalahan File "C: \ Users \ displ \ Code \ .virtualenvs \ dev \ lib \ situs-paket \ cms \ utils \ i18n.py", baris 4, dalam <module> dari django.core.urlresolvers import get_resolver, LocaleRegexURLResolver ModuleNotFoundError: Tidak ada modul bernama 'django.core.urlresolvers', harus melakukan apa yang jawaban yang benar mengatakan ganti semua referensi. Django agak menyebalkan, banyak hal yang tidak berhasil dari pergi.
Rich Bianco
3

Bagi mereka yang mungkin mencoba membuat Travis Build, jalur default dari mana Django diinstal dari requirements.txtfile menunjuk ke repo yangdjango_extensions modulnya belum diperbarui. Satu-satunya solusi, untuk saat ini, adalah menginstal dari cabang master menggunakan pip. Di situlah tambalan dibuat. Tetapi untuk sekarang, kita harus menunggu.

Anda dapat mencoba ini sementara itu, mungkin bisa membantu

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

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

emalinga
sumber
2

gunakan yang ini:

from django.urls import reverse
naimur rahman
sumber
2

Untuk versi django lebih besar dari 2.0 digunakan:

from django.urls import reverse

dalam file models.py Anda.

Kazi Imam Hasan
sumber
1

Jika build Anda di TravisCI gagal karena alasan khusus ini, Anda dapat menyelesaikan masalah ini dengan memperbarui Django Extensions di keperluan Anda.txt

pip install --upgrade django-extensions

Ini akan memperbarui ekstensi untuk menggunakan modul Django 2+.

willieswanjala
sumber
1

urlresolver telah dihapus di versi Django yang lebih tinggi - Harap tingkatkan instalasi Django Anda. Saya memperbaikinya menggunakan perintah berikut.

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

Untuk mengatasinya, Anda menurunkan kelas Djangoke versi apa pun yang lebih rendah daripada 2.0. pipmenginstal Django==1.11.29.

pengguna13070322
sumber