python-django:找不到名为.urls的模块

我目前正在尝试使用django开发一个相当简单的应用程序,但是一开始我很困惑:我的项目名为“ kundencenter”,我的应用程序为“ customermgr”.

项目和应用程序都具有urls.py,项目的urls.py包含应用程序的:

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

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^customer/', include('kundencenter.customermgr.urls')),
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

但是,当我现在尝试访问客户/时,出现了ImportError:

Django Version: 1.4
Exception Type: ImportError
Exception Value:    
No module named customermgr.urls
Exception Location: /usr/local/lib/python2.7/dist-packages/django/utils/importlib.py in import_module, line 35
Python Executable:  /usr/bin/python
Python Version: 2.7.1
Python Path:    
    ['/usr/lib/python2.7',
     '/usr/lib/python2.7/plat-linux2',
     '/usr/lib/python2.7/lib-tk',
     '/usr/lib/python2.7/lib-old',
     '/usr/lib/python2.7/lib-dynload',
     '/usr/local/lib/python2.7/dist-packages',
     '/usr/lib/python2.7/dist-packages',
     '/usr/lib/python2.7/dist-packages/PIL',
     '/usr/lib/python2.7/dist-packages/gtk-2.0',
     '/usr/lib/pymodules/python2.7',
     '.',
     '/var/www/kundencenter',
     '/var/www']

如您所见,我已经对PYTHONPATH有所了解,但无济于事.您可能已经猜到了,该项目位于/ var / www / kundencenter中.我还已经检查了__init__.py文件是否已创建(它们为空).当我运行manage.py runserver并将Apache与mod_wsgi一起使用时,将出现错误.

我几乎处于智慧的尽头.有人知道我如何摆脱这个错误吗?

解决方法:

您是否尝试过没有项目名称?

url(r'^customer/', include('customermgr.urls')),

代替

url(r'^customer/', include('kundencenter.customermgr.urls')),

顺便说一下,如果不是这种情况,请以尽可能短的路径导入模型(或其他所有模型).
如果您在同一应用程序内导入模型,只需使用“从模型导入X,Y,Z”即可.

如果必须从任何其他应用程序导入模型,函数,类等,请使用“ from my_other_app.models import X,Y,Z”,但不要包含您的项目名称.

如果有一天,您想为另一个django项目回收您的应用程序,它将为您省去一些麻烦:)

上一篇:我的代码有什么问题? WSGI,烧杯,Python,apache2


下一篇:WSGI到底是什么?