ข้อผิดพลาดในการนำเข้า Django - ไม่มีโมดูลชื่อ django.conf.urls.defaults


93

ฉันกำลังพยายามเรียกใช้ statsd / graphite ซึ่งใช้ django 1.6

ขณะเข้าถึง URL ของไฟท์ฉันได้รับข้อผิดพลาดของโมดูล django

ไฟล์ "/opt/graphite/webapp/graphite/urls.py" บรรทัดที่ 15 เข้าจากการนำเข้า django.conf.urls.defaults * ImportError: ไม่มีโมดูลที่ตั้งชื่อค่าเริ่มต้น

อย่างไรก็ตามฉันไม่พบแพ็คเกจ django ที่เป็นค่าเริ่มต้นภายใน/Library/Python/2.7/site-packages/django/conf/urls/

โปรดช่วยแก้ไขปัญหานี้


4
คุณใช้ django เวอร์ชั่นอะไร?
yuvi

1
python -c "import django; print (django.get_version ())" 1.6
GJain

คำตอบ:


193

django.conf.urls.defaults ได้ถูกลบออกใน Django 1.6 หากปัญหาอยู่ในโค้ดของคุณเองคุณสามารถแก้ไขได้โดยเปลี่ยนการนำเข้าเป็น

from django.conf.urls import patterns, url, include

อย่างไรก็ตามในกรณีของคุณปัญหาอยู่ในแอปของบุคคลที่สามแกรไฟต์ ปัญหาได้รับการแก้ไขแล้วในสาขาหลักของ Graphite และเวอร์ชัน 0.9.14+

ใน Django 1.8+ คุณสามารถลบออกpatternsจากการนำเข้าและใช้รายการurl()s แทน

from django.conf.urls import url, include

ตรวจสอบด้วยว่าคุณได้ตั้งค่า ROOT_URLCONF ใน settings.py ของคุณหรือไม่! ตัวแปรนี้ยังต้องปรับเปลี่ยน ในกรณีของฉันมันคือ ROOT_URLCONF = 'urls' และต้องเปลี่ยนเป็น ROOT_URLCONF = 'app.urls'
lszrh

รูปแบบถูกลบออก คุณสามารถใช้รายการ python โดยตรงเพื่อเพิ่ม URL แทนการใช้รูปแบบ
Akshay Hazari

@Alasdair กำลังทำงานกับรหัสจาก django 1.6 และพบการแทนที่ค่าเริ่มต้นที่นี่ เพียงแค่เพิ่มคำตอบ เพื่อให้คนอื่นสามารถค้นหาความช่วยเหลือทั้งหมดได้ในที่เดียว
Akshay Hazari

3

หากคุณไม่ต้องการปรับลดรุ่นเป็น Django 1.5.x หรืออัปเกรด Graphite ด้วยเหตุผลบางประการคุณสามารถใช้การแก้ไขกับ Graphite รุ่นเก่าของคุณได้ด้วย:

find ./ -type f -exec sed -i -e 's/from\ django\.conf\.urls\.defaults\ import\ \*/from\ django\.conf\.urls\ import\ \*/g' {} \;

.. ใน<graphite_dir>/webapp/graphiteผบ.

สิ่งนี้ช่วยฉันด้วย Graphite 0.9.12 และ Django 1.7 (.5)

(ฉันต้องทำ:

find ./ -type f -exec sed -i -e 's/mimetype\=/content_type\=/g' {} \;
find ./ -type f -exec sed -i -e 's/content_type\=mimetype/content_type\=content_type/g' {} \;

.. ต่อมาหลังจากที่ฉันจัดการเริ่ม Graphite ฟีเจอร์บางอย่างไม่ทำงาน ตอนนี้พวกเขาทำงานให้ฉัน แต่ YMMV)


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