Python django:未找到名为<;的模块;应用程序>;。网址

Python django:未找到名为<;的模块;应用程序>;。网址,python,django,wsgi,Python,Django,Wsgi,我目前正在尝试使用django开发一个相当简单的应用程序,但我在一开始就被卡住了:我的项目名为“kundencenter”,我的应用程序名为“customermgr” 项目和应用程序都有一个url.py,项目的url.py包括应用程序的: from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin: from django.contrib impor

我目前正在尝试使用django开发一个相当简单的应用程序,但我在一开始就被卡住了:我的项目名为“kundencenter”,我的应用程序名为“customermgr”

项目和应用程序都有一个
url.py
,项目的
url.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)),
)
但当我现在尝试访问
客户/
,我会看到一个
导入错误

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
。我还检查了
\uuuu init\uuuu.py
文件是否已创建(它们是空的)。当我运行
manage.py runserver
并将Apache与mod_wsgi一起使用时,会出现此错误


我几乎已经智穷了。有人知道我怎样才能消除这个错误吗?

你试过没有项目名称吗

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

url(r'^customer/', include('kundencenter.customermgr.urls')),
顺便说一句,如果不是这样,请以最短的路径导入您的模型(或其他所有内容)。 如果在同一个应用程序中导入模型,只需使用“从模型导入X、Y、Z”

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


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

你可能在你的Python模块搜索路径的其他地方安装了一个模块/包,该模块/包的名称与你最先获取的相同

在WSGI脚本文件的开头添加:

import kundencenter
print kundencenter.__file__

并查看从何处获取。将PYTHONPATH设置为:

['/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']
以及:

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

我不知道您的目录结构是什么,所以这是我最好的GES。

您应该使用PIP在虚拟环境下构建所有内容,包括安装Django和您需要的所有其他模块/库。这样,您就不必担心会弄乱Python路径。尝试用谷歌搜索Python+Django+Virtualenv+PIP,并阅读一些推荐的设置。它确实简化了整个安装和配置过程,而且一切都是自包含的,您可以使用Fabric或其他部署工具轻松部署


祝你好运,我希望这会有所帮助。

按照建议更改
PYTHONPATH
,但不幸的是没有帮助,同样的错误也会产生。我的目录结构如下:/var/www/kundencenter-这里是manage.py/var/www/kundencenter/kundencenter-这里是settings.py、wsgi.py、url.py/var/www/kundencenter/customermgr-这里是其他url.py,除了我的模型和视图之外,这是Django 1.4的
manage.py startproject
manage.py startapp
创建的结构。显然,将PYTHONPATH或sys.path显式设置为包含Python安装的内部目录是错误的做法。如果你这样做了,那就意味着你从一开始就做错了什么。一般来说,你应该依靠Python来获得正确的结果,而不是使用它。我之前已经尝试过了,只是再次尝试过,同样的错误也会产生。谢谢你的命名提示!对于Django 1.4,不包含项目名称会引发错误,因此所有代码都必须导入项目,除非在不在该目录下的单独应用程序中。根本找不到该模块。我还尝试导入customermgr打印customermgr.\uuuu文件\uuuu该模块也未找到:-(