2014-09-05 15 views
7

Sto lavorando attraverso lo official Django tutorial e adattandolo leggermente alle mie esigenze utilizzando la versione 1.6.1 di Python, Python 2.7.6.Django - Errore di importazione: nessun modulo denominato * .urls

Sono al punto in cui mi ha mappato gli URL ma continuo a ricevere errori "Nessun modulo denominato customers.urls" quando c'è un modulo con un file con nome appropriato all'interno, quindi sono davvero a un perdita di ciò che sto facendo male.

Il mio pensiero iniziale era che avevo bisogno di importare qualcosa relativo ai clienti in root/urls.py, ma ogni combinazione di importazione ha provocato all'incirca lo stesso errore, e il tutorial non ha detto di farlo.

ROOT_URLCONF = 'taco.urls' (taco è il nome del progetto)

Io corro questo usando manage.py/runserver quindi non c'è inganno speciale web server in corso, che io sappia . L'ho riavviato più volte.

Le app sono tutte correttamente registrate, come può attestare il traceback.

Qualsiasi suggerimento su qualcosa che sto trascurando sarebbe apprezzato!

root/urls.py:

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

admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^customers/', include('customers.urls')), 
    url(r'^admin/', include(admin.site.urls)), 
) 

clienti/urls.py:

from django.conf.urls import patterns, url; 

from customers import views; 

urlpatterns = ('', 
    url(r'^$', views.index, name='index') 
); 

clienti/views.py:

from django.shortcuts import render 
from django.http import HttpResponse; 

def index(request): 
    return HttpResponse("Hello"); 

traceback

Environment: 


Request Method: GET 
Request URL: http://192.168.3.208:8000/customers/ 

Django Version: 1.6.1 
Python Version: 2.7.6 
Installed Applications: 
('django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'south', 
'taco.customers', 
'taco.inventory', 
'taco.lookups', 
'taco.orders') 
Installed Middleware: 
('django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware') 


Traceback: 
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 
    99.     resolver_match = resolver.resolve(request.path_info) 
File "/usr/lib/python2.7/dist-packages/django/core/urlresolvers.py" in resolve 
    337.    for pattern in self.url_patterns: 
File "/usr/lib/python2.7/dist-packages/django/core/urlresolvers.py" in url_patterns 
    365.   patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
File "/usr/lib/python2.7/dist-packages/django/core/urlresolvers.py" in urlconf_module 
    360.    self._urlconf_module = import_module(self.urlconf_name) 
File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module 
    40.   __import__(name) 
File "/var/project/taco/taco/urls.py" in <module> 
    7.  url(r'^customers/', include('customers.urls')), 
File "/usr/lib/python2.7/dist-packages/django/conf/urls/__init__.py" in include 
    26.   urlconf_module = import_module(urlconf_module) 
File "/usr/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module 
    40.   __import__(name) 

Exception Type: ImportError at /customers/ 
Exception Value: No module named customers.urls 
+0

Aggiungere "clienti" alle "Applicazioni installate" – shaktimaan

+1

È già stato aggiunto come "taco.customers". – Ivan

+1

Due cose 1. Penso che sia necessario aggiungere 'taco' nelle app installate. 2. Probabilmente devi eseguire 'include ('taco.customers.urls')' nel principale 'urls.py' – shaktimaan

risposta

7

nei vostri clienti/urls.py:

Modifica questo:

urlpatterns = ('', 
    url(r'^$', views.index, name='index') 
); 

Per questo:

urlpatterns = patterns('', 
    url(r'^$', views.index, name='index') 
); 

Inoltre, mak Assicurati di avere il tuo file __init__.py nel pacchetto customers. E che INSTALLED_APPS è correttamente compilato con il nome della tua app.

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.admin', 
    'south', 
    'customers', 
    'inventory', 
    'lookups', 
    'orders', 
) 
0

Se taco è il nome del progetto Verifica che le applicazioni vengono riferimento correttamente in modo nelle vostre applicazioni installate potrebbe essere necessario il seguente:

Installed Applications: 
('django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'south', 
'customers', 
'inventory', 
'lookups', 
'orders') 
+0

Questo era uno dei miei pensieri iniziali, ma non cambia nulla se aggiungo il percorso completo oppure no. – Ivan

+0

Ok si, hai affermato che Taco era il nome del progetto. In tal caso non è necessario aggiungere taco.appname alle app installate, è sufficiente utilizzare il nome dell'app non inserito in taco. – br3w5

Problemi correlati