我目前正在尝试使用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项目回收您的应用程序,它将为您省去一些麻烦:)