Django 가져 오기 오류-django.conf.urls.defaults라는 모듈이 없습니다.


93

django 1.6을 사용하는 statsd / graphite를 실행하려고합니다.

graphite URL에 액세스하는 동안 django 모듈 오류가 발생합니다.

파일 "/opt/graphite/webapp/graphite/urls.py", 15 행, django.conf.urls.defaults에서 가져 오기 * ImportError : defaults라는 모듈이 없습니다.

그러나 내부에서 기본값 django 패키지를 찾지 못했습니다./Library/Python/2.7/site-packages/django/conf/urls/

이 문제를 해결하는 데 도움을주세요.


4
어떤 장고 버전을 사용하고 있습니까?
yuvi nov.

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

답변:


193

django.conf.urls.defaults Django 1.6에서 제거되었습니다 . 자체 코드에 문제가있는 경우 가져 오기를 다음으로 변경하여 문제를 해결할 수 있습니다.

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

그러나 귀하의 경우 문제는 타사 앱인 흑연에 있습니다. 그래파이트의 마스터 브랜치 및 버전 0.9.14+에서 문제 가 수정되었습니다 .

Django 1.8 이상에서는 patterns가져 오기에서 제거 하고 url()대신 s 목록을 사용할 수 있습니다 .

from django.conf.urls import url, include

settings.py에서 ROOT_URLCONF를 설정 했는지도 확인하십시오! 이 변수도 조정해야합니다. 내 경우는 = 'URL을'을 ROOT_URLCONF이었고 = 'app.urls'ROOT_URLCONF로 변경했다
루카스 슐츠에게

패턴이 제거되었습니다. 패턴을 사용하는 대신 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.