2013-01-25 80 views
0

DIRS無法導入site.views。錯誤是:無模塊命名視圖

./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 

FILES

./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/site/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/site/ 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。錯誤是:沒有名爲視圖模塊

+0

你能告訴我們ksp/site/views.py的內容嗎? – BobS

+0

是的。查看更新。 – user2009490

+0

我用登錄模塊做了這個。下面解決了這個問題。 – Ben

回答

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的,並且可能會咬你在其他方面的道路。最好的答案是重命名你的軟件包。

+0

好吧 - 「mysite」。結果:無法導入視圖。錯誤是:沒有命名模塊名稱視圖 – user2009490

+0

設置完'sys.path'之後,執行一個'import mysite',然後是一個'print mysite .__ file__'。確保正確的文件正在拾取。另外,它看起來像你的網址正在做一個「導入視圖」。這應該是來自「。導入views',或者只是'import mysite.views'。你不能只是'import views',因爲'mysite'不在你的'sys.path'上。而'import views'將會做一個絕對導入,而不是相對的導入。 IIRC,絕對導入現在是Python 2.7中的默認導入。 – jszakmeister

+0

如果仍然無法解決問題,請更新您的問題以包含完整的回溯。 – jszakmeister

相關問題