2011-06-28 3 views
2

Je déploie une application Django (propriétaire) (avec un mauvais support ;-)). La seule chose que je dois faire est de configurer un nouveau projet Django et d'implémenter les urls de l'application. Donc, ma config URL est la suivante:Django: Erreur d'importation étrange

1 from django.conf.urls.defaults import patterns, include, url 
    2 
    3 urlpatterns = patterns('', 
    4  url(r'^', include('ap01.urls')), 
    5) 

L'application en question est également ajoutée à mon réglage INSTALLED_APPS.

Je peux valider (./manage.py valider) et tout va bien. Lorsque vous exécutez l'application que je reçois l'erreur d'importation suivante:

ImportError at/
No module named ap01.urls 

Le module est présent dans le chemin de Python rapporté par Django et lorsque le module importation manuellement les urls tout fonctionne, à savoir:

./manage.py shell 
__import__('ap01.urls') 

Je comparais configurations avec les serveurs de QA et de dev et tout semble être en place correctement. La seule chose qui diffère est la version Python (2.6 sur QA et dev, 2.7 sur cette nouvelle machine).

+0

1. Est-AP01 dans vos paramètres INSTALLED_APPS? – Damian

+0

Oui, c'est le cas. Ajout d'informations à ma question, merci :) –

+0

as-tu modifié ton init.py? –

Répondre

2

je déboguer ce serait comme ceci:

Vous devez savoir où l'ImportError est soulevée. Ensuite, ajoutez quelque chose comme ceci:

import sys 
raise Exception(sys.path) 
  • est le répertoire ci-dessus "AP01" dans sys.path? Le répertoire ap01 contient-il un fichier __init__.py?
  • Quel ID utilisateur avez-vous interpréteur Python (celui qui soulève l'exception d'importation)? Essayer: import os, sys; assert False, (os.getuid(), sys.path)
  • Peut-être que cet ID d'utilisateur n'a pas assez de permissions pour lire le fichier? Obtenez cet utilisateur avec « su » (si vous utilisez un unix comme OS) et puis essayez de le lire: less ...../ap01/...py