Djangoインポートエラー-django.conf.urls.defaultsという名前のモジュールはありません


93

私はdjango 1.6を使用するstatsd / graphiteを実行しようとしています。

グラファイトのURLにアクセスしているときに、djangoモジュールエラーが発生する

ファイル「/opt/graphite/webapp/graphite/urls.py」、15行目、django.conf.urls.defaults importから* ImportError:defaultsという名前のモジュールはありません

ただし、デフォルトの 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

ただし、あなたの場合、問題はサードパーティのアプリ、グラファイトにあります。この問題、グラファイトのマスターブランチとバージョン0.9.14以降で修正さています。

Django 1.8以降でpatternsは、インポートから削除して、url()代わりにのリストを使用できます。

from django.conf.urls import url, include

また、settings.pyでROOT_URLCONFを設定しているかどうかも確認してください。この変数も調整する必要があります。私の場合、それはROOT_URLCONF = 'urls'であり、ROOT_URLCONF = 'app.urls'に変更する必要がありました
Lukas Schulze

パターンは削除されました。パターンを使用する代わりに、Pythonリストを直接使用してURLを追加できます。
Akshay Hazari 2017

@Alasdair django 1.6のコードを使用していて、デフォルトの置換がここで見つかりました。答えを追加するだけでした。他の誰かが1つの場所ですべての助けを見つけることができるように。
Akshay Hazari 2017

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' {} \;

..後で私がなんとかしてグラファイトを開始できたので、その機能のいくつかが機能しませんでした。今では彼らは私のために働きますが、YMMVです。)


1
おかげで、これはまだこのソフトウェアの現在のイテレーションに当てはまるようです!あなたの修正は、Graphite 0.9.12とDjango 1.6.1でうまく機能します。
Andrew White
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.