ImportError: ไม่มีโมดูลชื่อ 'django.core.urlresolvers'


167

ฉันทำงานเกี่ยวกับโครงการ Django ที่ฉันต้องการสร้างแบบฟอร์มสำหรับอินพุต ผมพยายามที่จะนำเข้าจากreverse django.core.urlresolversฉันพบข้อผิดพลาด:

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

ฉันใช้ Python 3.5.2, Django 2.0 และ MySQL


1
ดูเหมือนว่า django จะไม่ถูกติดตั้งบน PATH ของคุณ
Håken Lid

คำตอบ:


347

Django 2.0 ลบdjango.core.urlresolversโมดูลซึ่งย้ายไปdjango.urlsอยู่ในเวอร์ชัน 1.10 คุณควรเปลี่ยนการนำเข้าเพื่อใช้django.urlsแทนเช่นนี้

from django.urls import reverse

โปรดทราบว่า Django 2.0 จะลบคุณสมบัติบางอย่างที่เคยมีมาก่อนหน้านี้django.core.urlresolversดังนั้นคุณอาจต้องทำการเปลี่ยนแปลงเพิ่มเติมก่อนที่รหัสของคุณจะทำงาน ดูคุณสมบัติที่เลิกใช้ใน 1.9สำหรับรายละเอียดเกี่ยวกับการเปลี่ยนแปลงเพิ่มเติมเหล่านั้น


1
ฉันมีข้อผิดพลาดนี้ในโมดูลบุคคลที่สาม: ฉันจะแก้ไขได้อย่างไร ฉันสามารถแก้ไขโมดูลได้ แต่จะทำอย่างไรเมื่อฉันอัพเกรดรุ่นที่ไม่ได้แก้ไขใหม่ เป็นไปได้ที่จะแทนที่?
fabio

คุณสามารถอัปเดตและส่งคำขอดึงไปยังโมดูลบุคคลที่สาม
Gajit

62

หากคุณต้องการนำเข้าย้อนกลับให้นำเข้าจาก django.urls

from django.urls import reverse

27

คุณต้องแทนที่สิ่งที่เกิดขึ้นทั้งหมด:

from django.core.urlresolvers import reverse

ถึง:

from django.urls import reverse

ป้อนคำอธิบายรูปภาพที่นี่

หมายเหตุ: เช่นเดียวกันกับ reverse_lazy

ใน Pycharm Cmd+ Shift+ R สำหรับการเริ่มการ replacment ใน Path


ฉันได้รับข้อผิดพลาดเดียวกันลองทำสิ่งนี้และรับไฟล์ข้อผิดพลาด "C: \ Users \ displ \ Code \ .virtualenvs \ dev \ lib \ site-packages \ cms \ utils \ i18n.py", บรรทัด 4 ใน <module> จาก django.core.urlresolvers นำเข้า get_resolver, LocaleRegexURLResolver ModuleNotFoundError: ไม่มีโมดูลชื่อ 'django.core.urlresolvers' ต้องทำสิ่งที่คำตอบที่ถูกต้องกล่าวว่าแทนที่การอ้างอิงทั้งหมด แม้ว่าประเภทของ Django แย่มากหลายสิ่งไม่สามารถทำงานได้
รวย Bianco

3

สำหรับผู้ที่อาจพยายามสร้าง Travis Build เส้นทางเริ่มต้นที่ Django ติดตั้งจากrequirements.txtจุดไฟล์ไปยัง repo ที่django_extensionsโมดูลยังไม่ได้รับการปรับปรุง วิธีแก้ปัญหาเฉพาะตอนนี้คือการติดตั้งจากสาขาหลักโดยใช้ pip นั่นคือสิ่งที่แพทช์ทำ แต่สำหรับตอนนี้เราจะต้องรอ

คุณสามารถลองสิ่งนี้ได้ในระหว่างนี้อาจช่วยได้

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

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




1

หากงานสร้างของคุณบน TravisCI ล้มเหลวเนื่องจากเหตุผลนี้คุณสามารถแก้ไขปัญหาได้โดยการอัปเดตนามสกุล Django ในความต้องการของคุณ

pip install --upgrade django-extensions

นี่จะอัปเดตส่วนขยายเพื่อใช้โมดูล Django 2+


1

urlresolver ถูกลบใน Django เวอร์ชันที่สูงกว่า - โปรดอัปเกรดการติดตั้ง django ของคุณ ฉันแก้ไขโดยใช้คำสั่งต่อไปนี้

pip install django==2.0 --upgrade

1

เพื่อแก้ปัญหานี้ทั้งคุณลงคะแนนDjangoให้กับรุ่นใด ๆ ที่น้อยกว่าการติดตั้ง2.0. pipDjango==1.11.29

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.