2011-03-08 20 views
8

मुझे अपनी वेबसाइट पर नए अपडेट तैनात करते समय एक बहुत ही परेशानी की समस्या का सामना करना पड़ा है। मेरे पास दो अलग-अलग वेबसाइटें हैं जबकि उनमें से एक विकास संस्करण है। अब यह त्रुटि संदेश की वजह से काम नहीं करेगा जब मैं उत्पादन करने के लिए अपने परिवर्तनों को लागू करना चाहते हैं:Django: नाम आयात नहीं कर सकता

File "/usr/lib/python2.6/dist-packages/django/core/handlers/base.py", line 99, in get_response
request.path_info)

File "/usr/lib/python2.6/dist-packages/django/core/urlresolvers.py", line 249, in resolve for pattern in self.url_patterns:

File "/usr/lib/python2.6/dist-packages/django/core/urlresolvers.py", line 278, in _get_url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)

File "/usr/lib/python2.6/dist-packages/django/core/urlresolvers.py", line 273, in _get_urlconf_module
self._urlconf_module = import_module(self.urlconf_name)

File "/usr/lib/python2.6/dist-packages/django/utils/importlib.py", line 35, in import_module
import(name)

File "/srv/websites/spelutveckla_se/urls.py", line 21, in
(r'^account/login/$', LoginView.as_view()),

NameError: name 'LoginView' is not defined

इससे कोई फर्क नहीं पड़ता अगर मैं क्योंकि यह एक के बारे में शिकायत करेंगे कि अनुप्रयोग, देखने के लिए, वर्ग या मॉड्यूल को निकालने इसके बजाय अन्य मॉड्यूल। लॉग इन व्यू एक आयात कथन में परिभाषित किया गया है। फाइलें विकास फ़ाइलों की एक ताजा प्रति हैं (settings.py को छोड़कर) जो बिना किसी समस्या के किसी अन्य सबडोमेन पर चल रही है। मैंने कई बार settings.py की जांच की है और सुनिश्चित किया है कि सही सेटिंग्स सेट की गई हैं (कुछ निर्देशिका पथ से भिन्न)। मैंने यह भी जांच लिया है कि apache2 www-data उपयोगकर्ता को फ़ाइलों तक पहुंचने की अनुमति है। मैंने अपाचे को दो बार फिर से शुरू किया है और फ़ाइलों को फिर से कॉपी किया है लेकिन कुछ भी काम नहीं करता है।

मैं बेताब हूं और समस्या का कोई संकेत नहीं है ...?

यहाँ मेरी urls.py शीर्ष पर कैसा दिखता है:

from django.conf.urls.defaults import * 
from django.conf import settings 
from django.views.generic import DetailView, ListView, TemplateView 
from django.contrib import admin 
from project.models import Project 
from project.views import Detail, EditView as EditProject, CreateProjectView, EditProjectLinksView, EditProjectFeedsView, EditProjectTagsView, EditMultimediaView, PostForumTopic, AudioFormset 
from frontpage.views import FrontpageView 
from userprofile.views import UserRegistrationView, UserRegistrationActivationView, LogoutView, UserProfileView, LoginView, EditProfileView, CreateUserProfileView 
from registration.views import activate as UserActivatedView 

उत्तर

22

आप सबसे अधिक संभावना मॉड्यूल LoginView में एक परिपत्र आयात में परिभाषित किया गया था, यानी जब आप views मॉड्यूल LoginView परिभाषित आयात करने गया था, किसी भी तरह से कुछ बयान बदले में कुछ अन्य मॉड्यूल आयात किया जो अभी भी पूरी तरह से व्याख्या करने की प्रतीक्षा कर रहा था।

यहाँ आप एक बेहतर विचार देने के लिए एक उदाहरण है:

# myapp.urls 

from django.conf.urls.defaults import * 
from myapp import views 

urlpatterns = patterns('', 
    # ... 
) 

# myapp.views 

from django.core.urlresolvers import reverse 
from django.views.generic.edit import CreateView 

class SomeCreateView(CreateView): 

    # BOOM! 
    success_url = reverse('myapp:some-url') 

एक बार myapp.views आयात होता है और SomeCreateView प्रकार, स्मृति के लिए आवंटित हो जाता है reverse('myapp:some-url') निष्पादित हो जाएगा और अपने myapp.urls अंततः Django से आयात किया जाएगा, केवल कि यह कभी भी संभव नहीं होगा क्योंकि myapp.urls आयात करने के लिए अनिश्चित काल तक myapp.views की प्रतीक्षा करेगा।

+0

मुझे स्टेजिंग और प्रोडक्शन एनवी के साथ समान समस्या है। पहले चलाने पर स्टेजिंग पर मुझे '' 'त्रुटि मिलती है: नाम कार्ट आयात नहीं कर सकता'''। फिर कुछ पेज रीफ्रेश करने के बाद सबकुछ काम करना शुरू हो जाता है। ऐसा कुछ भी उत्पादन पर होता है। फिर भी समस्या यह है कि मैं स्टेजिंग पर /manage.py कमांड नहीं चला सकता क्योंकि यह लगातार मुझे एक त्रुटि देता है। – kravc

+0

सभी पीईसी फाइल को हटाने का प्रयास करें –

+0

धन्यवाद, आपने मेरे सटीक मामले की ओर इशारा किया। मेरे मॉडल में क्लास वैरिएबल के रूप में परिभाषित एक 'रिवर्स' यूआरएल। मैं परिपत्र आयात के लिए शिकार कर रहा था, इस तरह के अन्य अजीब मामलों नहीं। बस मुझे बहुत सारे बाल खींचने से बचाया। – Rebs