web-dev-qa-db-fra.com

Django erreur d'importation - pas de module nommé Django.conf.urls.defaults

J'essaie de lancer statsd/graphite qui utilise Django 1.6.

Lors de l’accès à une URL graphite, j’obtiens Django erreur de module

Fichier "/opt/graphite/webapp/graphite/urls.py", ligne 15, provenant de Django.conf.urls.defaults import * ImportError: aucun module nommé par défaut

Cependant, je ne trouve pas par défaut Django à l'intérieur de /Library/Python/2.7/site-packages/Django/conf/urls/

S'il vous plaît aider à résoudre ce problème.

89
GJain

Django.conf.urls.defaultsa été supprimé Django 1.6 . Si le problème se trouvait dans votre propre code, corrigez-le en modifiant l'importation en

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

Cependant, dans votre cas, le problème se situe dans une application tierce, le graphite. Le problème a été corrigé dans la branche principale du graphite et la version 0.9.14+.

Dans Django 1.8+ vous pouvez supprimer patterns de l'importation et utiliser à la place une liste de url() s.

from Django.conf.urls import url, include
190
Alasdair

Si, pour une raison quelconque, vous ne souhaitez pas rétrograder à Django 1.5.x ou mettre à niveau Graphite, vous pouvez appliquer le correctif à votre ancien Graphite avec:

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

..dans votre <graphite_dir>/webapp/graphite dir.

Cela m'a aidé avec mes graphite 0.9.12 et Django 1.7 (.5).

(Je devais aussi faire:

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

..puis comme après avoir réussi à démarrer Graphite, certaines de ses fonctionnalités ne fonctionnaient pas. Maintenant, ils travaillent pour moi mais YMMV.)

3
Greg Dubicki