无法导入site.views。错误是:没有模块命名视图

时间:2013-01-25 01:43:52

标签: python

DIRS

./ KSP

__init__.py
jquery.pngFix.js
manage.py
passenger_wsgi.py
settings.py
site/
site_media/
templates/
tmp/
urls.py

./ ksp / site

__init__.py
models.py
models_.py
myforms.py
urls.py
views.py
views_back.py

文件

./ KSP / passenger_wsgi.py:

import os, sys
sys.path.insert(0,'/usr/lib/python2.7/site-packages/django-1.3')
sys.path.append('/home/p/pravicom/ksp/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

./ KSP / urls.py:

from django.conf.urls.defaults import *
urlpatterns = patterns('',
    ('', include('site.urls')),
)

./ KSP /站点/ urls.py:

import views
from django.conf.urls.defaults import *
from django.conf import settings
from django.contrib.auth.views import login, logout

urlpatterns = patterns('',
    (r'^$', 'views.ShowMain'),
#....
)

urlpatterns += patterns('',
    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
)

./ KSP /站点/ views.py:

from django.shortcuts import render_to_response
from models import *
from myforms import *
from django.http import HttpResponseRedirect, HttpRequest
from django import forms
from django.template import RequestContext
from django.contrib.auth.models import User
from django.contrib import auth
from django.contrib.auth.decorators import login_required
import os, urlparse, Image, sys
from django.core.paginator import Paginator, InvalidPage, EmptyPage


def custom_proc(request):
    return{
        'user': request.user
    }

def ShowMain(request):
    all_posts = Posts.objects.all().order_by('-id')

    return render_to_response("index.html", {'all_posts':all_posts}, context_instance=RequestContext(request, processors=[custom_proc]))

./ KSP / settings.py:

...
ROOT_URLCONF = 'urls'
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
#    'django.contrib.sites',
#    'django.contrib.flatpages',
    'django.contrib.comments',
    'site',
)
...

结果:

异常类型:ViewDoesNotExist 例外价值:
无法导入site.views。错误是:没有名为views的模块

1 个答案:

答案 0 :(得分:2)

site是一个糟糕的名称,可以将您的模块与Python的site模块冲突。您应该将其重命名为不会发生碰撞的其他内容。您可以通过将路径前置到sys.path

来实现此目的
import os, sys
sys.path.insert(0,'/usr/lib/python2.7/site-packages/django-1.3')
sys.path.insert(0, '/home/p/pravicom/ksp/')

然而,这充其量只是hackish,并可能在未来的其他方面咬你。最好的答案是重命名您的包裹。