Python django:未找到名为<;的模块;应用程序>;。网址
我目前正在尝试使用django开发一个相当简单的应用程序,但我在一开始就被卡住了:我的项目名为“kundencenter”,我的应用程序名为“customermgr” 项目和应用程序都有一个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
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该模块也未找到:-(