ImportError 没有名为视图的模块

Posted

技术标签:

【中文标题】ImportError 没有名为视图的模块【英文标题】:ImportError No module named views 【发布时间】:2014-03-27 12:49:02 【问题描述】:

我对 Django 很陌生。我刚刚对其进行了配置并尝试创建一个简单的 Hello 世界! Web应用程序。我正在一步一步地学习教程。我运行了命令 python django-admin.py startproject mysite,它创建了 mysite 目录,其中包含另一个名为 mysite 的目录以及与 manage.py 一起。子目录 mysite 有 init.py init.pyc settings.py settings.pyc urls.py urls.pyc wsgi.py wsgi.pyc。

在外部 mysite 目录中,我创建了 views.py,其中包含以下代码:-

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world!")

在 mysite 内部目录中,在 urls.py 我有以下代码:-

from django.conf.urls import patterns, include, url
from mysite.views import *

urlpatterns = patterns('',
    url(r'^hello/$', 'mysite.views.hello'),

但我收到此错误:-

ImportError at /hello/

No module named views

Request Method:     GET
Django Version:     1.6.2
Exception Type:     ImportError
Exception Value:    

No module named views

Exception Location:     /data/aman/mysite/mysite/urls.py in <module>, line 2
Python Executable:  /usr/bin/python
Python Version:     2.6.6
Python Path:    

['/data/aman/mysite',
 '/usr/lib64/python26.zip',
 '/usr/lib64/python2.6',
 '/usr/lib64/python2.6/plat-linux2',
 '/usr/lib64/python2.6/lib-tk',
 '/usr/lib64/python2.6/lib-old',
 '/usr/lib64/python2.6/lib-dynload',
 '/usr/lib64/python2.6/site-packages',
 '/usr/lib/python2.6/site-packages']

Server time:    Tue, 25 Feb 2014 10:27:38 +0000

【问题讨论】:

【参考方案1】:

尝试将views.py 移动到“内部”mysite 目录。视图是应用程序的一部分,因此需要将它们移动到应用程序目录中(而不是项目目录中)。

您收到的错误消息表明mysite(应用程序)没有views.py 模块。

【讨论】:

小心,“我的网站”不是应用程序。它是项目文件夹的内部文件夹。在官方 Django 教程中,“polls”是应用文件夹。【参考方案2】:

通常最好不要这样做 from ... import * 试试这个:

from django.conf.urls import patterns, include, url
from mysite.views import hello

urlpatterns = patterns('',
    url(r'^hello/$', hello),

【讨论】:

以上是关于ImportError 没有名为视图的模块的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:没有名为瓶子的模块

ImportError:没有名为 ghostscript 的模块

ImportError:没有名为枚举的模块

ImportError:没有名为 pynotify 的模块。安装模块时

ImportError:没有名为 websocket 的模块

ImportError:没有名为“backports”的模块