2014-09-05 122 views
7

我通過official Django tutorial工作,稍微適應它使用Django版本1.6.1,2.7.6的Python我自己的需要。Django的 - 導入錯誤:沒有名爲*模塊.urls

我在這個地步,它有我的映射網址,但我仍然收到「沒有模塊命名customers.urls」錯誤時,有一個非常明確的模塊內有一個合適的命名文件,所以我真的在失去了我做錯了什麼。

我最初的想法是,我需要進口一些客戶相關的根/ urls.py,但進口的每一個組合中導致大致相同的錯誤,並且教程並沒有說要怎麼做。

ROOT_URLCONF =「taco.urls」(玉米餅是該項目的名稱)

我運行這個使用manage.py/runserver所以沒有特殊的Web服務器權謀事,我所知道的。我重新啓動了好幾次。

的應用程序都是正確註冊,因爲回溯可以證明。

任何指針,以我俯瞰東西,將不勝感激!

根/ 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)), 
) 

客戶/ urls.py:

from django.conf.urls import patterns, url; 

from customers import views; 

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

客戶/ views.py:

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

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

回溯

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

將'customers''添加到'Installed Applications'中 – shaktimaan 2014-09-05 20:48:12

+1

它已經添加爲「taco.customers」。 – Ivan 2014-09-05 20:50:12

+1

兩件事1.我認爲你需要在安裝的應用程序中添加'taco'。 2.您可能需要在主urls.py中執行include('taco.customers.urls')' – shaktimaan 2014-09-05 20:52:54

回答

7

在客戶/ urls.py:

更改此:

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

對於這一點:

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

此外,麥e確定您的包裝中有您的__init__.py文件customers。並且INSTALLED_APPS正確填寫了您的應用程序名稱。

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

如果塔科是項目檢查的所有應用被正確引用所以在你安裝的應用程序,你可能需要以下的名稱:

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

這是我最初的想法之一,但不會改變任何東西,無論我是否添加完整路徑。 – Ivan 2014-09-05 20:59:32

+0

好的,你確實說過塔科是這個項目的名字。在這種情況下,您不需要將taco.appname添加到已安裝的應用程序中,只需使用未附加taco的應用程序名即可。 – br3w5 2014-09-05 21:03:26

相關問題