Django ने RuntimeError के साथ काम करना बंद कर दिया: पॉप्युलेट () रिप्रेंटेंट नहीं है


123

मैं WSGI के साथ Apache सर्वर पर तैनात एक Django वेब एप्लिकेशन को विकसित कर रहा हूं, और सब कुछ सुचारू रूप से चल रहा है। आज, मैंने admin.pyबिल्ड-इन Django व्यवस्थापक इंटरफ़ेस को अनुकूलित करने के प्रयास में अपने ऐप में कुछ छोटे बदलाव किए हैं , और शुरू में एक सिंटैक्स त्रुटि (एक अप्रकाशित कोष्ठक) बनाई है। इसका मतलब यह था कि जब मैंने wsgi.pyकोड को छुआ और लोड किया था (मेरे पास अपने वर्चुअल होस्ट पर डेमॉन मोड में चलने वाला WSGI है), तो मेरी वेबसाइट को एक आंतरिक सर्वर त्रुटि से बदल दिया गया क्योंकि WSGI ने सिंटैक्स त्रुटि पर रोक दिया।

इसलिए मैंने सिंटैक्स त्रुटि को ठीक किया, जाँच की कि मेरे पास कोई और नहीं है manage.py check, और wsgi.pyफिर से काम करने के लिए छुआ । लेकिन मेरी वेबसाइट अभी भी एक आंतरिक सर्वर त्रुटि प्रदर्शित करती है! अपाचे लॉग की जाँच, यह वही है जो मैं देख रहा हूँ:

[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Create interpreter 'quotes.cs.cornell.edu|'.
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding '/extra/www/html/quotes/quotes_django' to path.
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding '/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/' to path.
[Sun Nov 23 13:52:46 2014] [info] [client 128.84.33.19] mod_wsgi (pid=19093, process='quotes.cs.cornell.edu',
  application='quotes.cs.cornell.edu|'): Loading WSGI script '/extra/www/html/quotes/quotes_django/quotes_django/
wsgi.py'.
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Target WSGI script '/extra/www/html/
quotes/quotes_django/quotes_django/wsgi.py' cannot be loaded as Python module.
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Exception occurred processing WSGI
script '/extra/www/html/quotes/quotes_django/quotes_django/wsgi.py'.
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] Traceback (most recent call last):
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]   File "/extra/www/html/quotes/quotes_django/
quotes_django/wsgi.py", line 14, in <module>
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]     application = get_wsgi_application()
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]   File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/core/wsgi.py", line 14, in get_wsgi_application
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]     django.setup()
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]   File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/__init__.py", line 21, in setup
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]     apps.populate(settings.INSTALLED_APPS)
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]   File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/apps/registry.py", line 115, in populate
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]     app_config.ready()
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]   File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/contrib/admin/apps.py", line 22, in ready
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]     self.module.autodiscover()
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]   File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/contrib/admin/__init__.py", line 23, in autodiscover
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]     autodiscover_modules('admin', register_to=site)
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]   File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/utils/module_loading.py", line 74, in autodiscover_modules
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]     import_module('%s.%s' % (app_config.name,         
module_to_search))
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]   File "/usr/lib64/python2.7/importlib/__init__.py", line 
37, in import_module
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]     __import__(name)
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]   File "/extra/www/html/quotes/quotes_django/quotespage/
admin.py", line 25
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]     approve_quotes.short_description = "Approve selected
quotes"
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]                  ^
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] SyntaxError: invalid syntax
[Sun Nov 23 13:53:36 2014] [info] [client 128.84.33.19] mod_wsgi (pid=19093, process='quotes.cs.cornell.edu',
  application='quotes.cs.cornell.edu|'): Loading WSGI script '/extra/www/html/quotes/quotes_django/quotes_django/
wsgi.py'.
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Target WSGI script '/extra/www/html/
quotes/quotes_django/quotes_django/wsgi.py' cannot be loaded as Python module.
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Exception occurred processing WSGI
script '/extra/www/html/quotes/quotes_django/quotes_django/wsgi.py'.
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] Traceback (most recent call last):
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19]   File "/extra/www/html/quotes/quotes_django/         
quotes_django/wsgi.py", line 14, in <module>
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19]     application = get_wsgi_application()
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19]   File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/core/wsgi.py", line 14, in get_wsgi_application
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19]     django.setup()
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19]   File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/__init__.py", line 21, in setup
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19]     apps.populate(settings.INSTALLED_APPS)
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19]   File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/apps/registry.py", line 78, in populate
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19]     raise RuntimeError("populate() isn't reentrant")
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] RuntimeError: populate() isn't reentrant

त्रुटियों की पहली श्रृंखला डब्ल्यूएसजीआई को मेरे में वाक्य रचना त्रुटि के कारण विफल दिखाती है admin.py। हालाँकि, त्रुटियों की दूसरी श्रृंखला Django के लिए एक आंतरिक त्रुटि दिखाती है:

RuntimeError: populate() isn't reentrant

की populateविधि से फेंका गया registry.py

इस त्रुटि संदेश को देखते हुए आश्चर्यजनक रूप से बहुत कम जानकारी मिलती है, इसमें से कोई भी Django प्रलेखन से नहीं है। जाहिरा तौर पर, यह कभी-कभी हो सकता है यदि आप एक ऐप को दो बार अपने नाम देते हैं settings.py, लेकिन मैं ऐसा नहीं कर रहा हूं। इससे भी महत्वपूर्ण बात, मैं settings.pyउस बिंदु से नहीं बदला हूं जहां वेबसाइट ठीक काम कर रही थी - केवल एक चीज जो मैंने बदल दी थी admin.py

मैंने अपने द्वारा किए गए सभी परिवर्तनों को वापस करने की कोशिश की, इसलिए मेरा सभी पायथन कोड उस स्थिति में वापस आ गया है जब वेबसाइट काम कर रही थी - और मुझे तब भी populate() isn't reentrantत्रुटि मिलती है जब मैं WSGI कोड को फिर से लोड करने की कोशिश करता हूं!

मैंने INSTALLED_APPS अनुभाग में अलग-अलग ऐप पर टिप्पणी करने की कोशिश की है settings.py, और यहां तक ​​कि केवल 'django.contrib.staticfiles' के साथ भी त्रुटि अभी भी होती है। अजीब तरह से, मुझे अभी भी त्रुटि मिलती है, भले ही मैं सभी एप्लिकेशन को टिप्पणी करता हूं - Django किसी भी एप्लिकेशन को लोड नहीं करने पर भी त्रुटि फेंकता है!

क्या किसी को पता है कि यहाँ क्या हो रहा है? या मेरे लिए इस त्रुटि को डीबग करने का कोई बेहतर तरीका है, क्योंकि अपाचे लॉग में ट्रेसबैक बहुत ही अनपेक्षित है?

नोट्स: मैं Django 1.7, Apache 2.2, और Python 2.7 का उपयोग कर रहा हूं।


2
मैं सभी .pyc फ़ाइलों को निकालने की कोशिश करूँगा जो आसपास हो सकती हैं।
डुकैबोडी

नहीं, सभी .pyc फ़ाइलों को हटाने से मदद नहीं मिली। wsgi.pyएक ही अपाचे त्रुटि में टचिंग परिणाम, और .pyc फाइलें पुनः निर्मित नहीं होती हैं।
एडवर्ड

1
क्या आपने अपाचे को फिर से शुरू करने की कोशिश की है?
डुकेबॉडी

मैं अपाचे को पुनः आरंभ नहीं कर सकता क्योंकि मेरे पास इस सर्वर पर अधिकार नहीं हैं। रूट एक्सेस वाला प्रशासक सोमवार तक कार्यालय में वापस नहीं आएगा।
एडवर्ड

मेरे मामले में यह पर्यावरण में INSTALLED_APPS से ऐप इंस्टॉल नहीं किया गया था।
maciek

जवाबों:


99

यह आपके Django सेटिंग्स में एक बग के कारण होता है। दुर्भाग्य से, Django इस सामान्य और अन-उपयोगी त्रुटि संदेश के पीछे बग को छिपा रहा है।

सच्ची समस्या को प्रकट करने के लिए, django/apps/registry.pyलाइन 80 और आसपास खोलें , प्रतिस्थापित करें:

raise RuntimeError("populate() isn't reentrant")

साथ में:

self.app_configs = {}

यह Django को लोडिंग जारी रखने की अनुमति देगा, और वास्तविक त्रुटि को प्रकट करेगा।

मैंने कई अलग-अलग कारणों से इस त्रुटि का सामना किया है। एक बार इसलिए क्योंकि मैंने अपने ऐप के एक एडमिनहोम में खराब आयात किया था।


22
यह इस धागे में अब तक का सबसे उपयोगी उत्तर है। अब मुझे पता है ->django.core.exceptions.ImproperlyConfigured: psycopg2_version 2.5.4 or newer is required; you have 2.5 (dt dec pq3 ext)
रिकी

2
मेरी ज़िंदगी बचाई। इस समाधान ने मुझे लापता आवश्यकताओं और उनके बीच संगतता त्रुटियों की सफलतापूर्वक जांच करने की अनुमति दी।
19ngel Jiménez

1
यह एकदम सही था। उस एक लाइन को बदलने से मुझे यह देखने को मिलेगा कि मुझे एक साधारण आयात त्रुटि हुई। मैं नहीं बता सकता कि इससे पहले क्या चल रहा था।
जेम्स

4
यह उत्तर शुद्ध सोना है।
xpanta

2
@ रिकी और यह अब तक की सबसे उपयोगी टिप्पणी थी क्योंकि मुझे इस उत्तर से परेशान नहीं होना था और बस कोशिश की pip install --upgrade psycopg2और इसे ठीक कर लिया।
यूजर

65

मेरे सर्वर के व्यवस्थापक ने अपाचे को फिर से शुरू किया, और उस जादुई तरीके से इस समस्या को ठीक किया। ठीक उसी पायथन फ़ाइलों को बिना कारण लोड किया गया है populate() isn't reentrant। मैंने एक अन्य फाइल को एक सिंटैक्स त्रुटि के साथ लोड करने की भी कोशिश की, फिर इसे ठीक किया, और सर्वर नई फ़ाइल को लोड करने और बिना किसी समस्या के सही ढंग से चलाने में सक्षम था।

मुझे अभी भी पता नहीं है कि क्या गलत हो रहा था, लेकिन मैं इस पर अंकन कर रहा हूं क्योंकि समस्या का समाधान हो गया है। (खैर, जैसे ही StackOverflow ने मुझे अपना उत्तर स्वीकार करने की अनुमति दी, मैं इसे उत्तर दूंगा।)

अद्यतन : जब मैं गलती से सिंटैक्स त्रुटियों के साथ पायथन अपलोड करता हूं, तो यह त्रुटि जारी रखने के बाद, मैंने अपाचे को पुनरारंभ करने की तुलना में एक आसान हल निकाला है। जब WSGI populate() isn't reentrantत्रुटि फेंकना शुरू करता है, तो मैं wsgi.pyइस सरल कार्य के साथ अपने Django प्रोजेक्ट को प्रतिस्थापित करता हूं :

def application(environ, start_response):
    if environ['mod_wsgi.process_group'] != '': 
        import signal
        os.kill(os.getpid(), signal.SIGINT)
    return ["killed"]

फिर मैं अपनी वेबसाइट को फिर से लोड करता हूं, और WSGI डेमॉन प्रक्रिया पुनरारंभ होती है (जिसे मैं अपाचे लॉग को देखकर बता सकता हूं, भले ही वेबसाइट अभी भी वही 500 त्रुटि प्रदर्शित करती है)।

यदि मैं फिर wsgi.pyसे सामान्य में वापस बदल देता हूं और फिर से लोड करता हूं, तो WSGI ने बिना फेंक दिए सफलतापूर्वक अपना कोड चुन लिया populate() isn't reentrant(यह मानते हुए कि इस बार मेरे पास कोई सिंटैक्स त्रुटियां नहीं हैं)। इसलिए अपाचे की संपूर्णता को पुनः आरंभ करने की आवश्यकता नहीं है, बस WSGI प्रक्रिया है, और मैं इसे रूट विशेषाधिकारों के बिना कर सकता हूं।


8
मेरे लिए समस्या यह थी कि मैं अपने एक ऐप में एक मॉडल में बदलाव नहीं कर रहा था।
user2662692

ठीक है, मैं लगभग एक ही समस्या का सामना कर रहा हूं और हां यह मशीन को रिबूट करने और सर्वर को पुनरारंभ करने पर तय हो जाता है। लेकिन समस्या दोहराती रहती है। कभी-कभी अचानक। एक महीने के भीतर यह तीन बार हो चुका है। यदि किसी के पास कोई विचार है, तो कृपया मदद करें।
रोहित

@Rohit, यदि आप अपनी स्थिति के साथ मदद चाहते हैं, तो आपको शायद एक नया प्रश्न बताना चाहिए। आपको यहाँ टिप्पणियों में उत्तर मिलने की संभावना नहीं है।
एडवर्ड

4
startup-timeoutMod_wsgi के अधिक हाल के संस्करणों में mod_wsgi के डेमॉन मोड के लिए एक विकल्प है जो Django के आरंभ होने पर क्षणिक त्रुटियों से उबरने में सहायता करता है, जैसे कि डेटाबेस उपलब्ध नहीं होना। यदि टाइमआउट अवधि के बाद WSGI एप्लिकेशन ठीक से लोड नहीं होता है, तो टाइमआउट स्वचालित रूप से पुनरारंभ होने का कारण होगा। यहां तक ​​कि वह भी मदद नहीं करेगा जहां आपके पास अपने कोड के साथ एक स्थायी मुद्दा है। उस स्थिति में, पहली त्रुटि के लिए देखें, त्रुटि नहीं populate()क्योंकि यह वास्तविक कारण देगा जिससे आपका कोड विफल हो जाता है।
ग्राहम डुप्लेटन

1
आपका क्या मतलब है "Django परियोजना के wsgi.py इस सरल समारोह के साथ"? आप किसी फंक्शन वाली फाइल को कैसे बदलते हैं?
सेरिन

46

मुझे पता है कि यह एक पुराना उत्तर है लेकिन मैं इसके समाधान में योगदान दूंगा:

समस्या के स्रोत के निदान के तरीके के रूप में चलाएं manage.py checkऔर देखें कि क्या आपको वहां कुछ भी मिलता है

मेरे मामले में एक पुरानी आवश्यकता मुद्दा था और django एक सबमॉड्यूल आयात करने में विफल रहा था

सुनिश्चित करें कि आपकी आवश्यकताएं अद्यतित हैं


2
अपाचे पर मुझे त्रुटि 500 ​​मिलती है और मुझे समस्या नहीं मिली। इस कमांड से manage.py checkमुझे समस्या का पता चला। धन्यवाद।
अली हेसरी

13

यह एक प्रतिक्रिया नहीं है बल्कि एक प्रतिबिंब है।

जब आप django 1.7 में अपग्रेड करते हैं और आपके पास 500 त्रुटि होती है और आप अपने पृष्ठ को फिर से लोड करते हैं, तो Apache का कहना है कि "पॉप्युलेट () पुन: व्यवस्थित नहीं है"। मुझे लगता है कि जब आप अपने पृष्ठ को लोड करते हैं, तो अपाचे आपके ऐप के लिए आवश्यक सभी मॉड्यूल लोड करता है और जब त्रुटि को संभालता है तो यह मॉड्यूल को अनलोड नहीं करता है। इसलिए, जब आप अपने पृष्ठ को फिर से लोड करते हैं, तो अपाचे लोड फिर से मॉड्यूल को लोड करता है लेकिन यह पहले से ही लोड है। तो, अपाचे का कहना है "पॉप्युलेट () रीइंक्रंट नहीं है"।

इसे ठीक करने के लिए मेरे पास दो कार्य हैं: अपाचे को पुनरारंभ करें, या पहले 5OO त्रुटि को संभालने वाली त्रुटि को ठीक करें।

इसके साथ अपाचे को पुनः आरंभ करने का प्रयास करें:

sudo service httpd restart

मुझे आशा है कि यह आपकी मदद करेगा।


10

यदि Google App Engine का उपयोग करते समय आपको यह त्रुटि हो रही है, तो अन्य त्रुटियों के लिए अपने लॉग की जांच करें जो इसका कारण हो सकता है। मैं ला रही थी:

ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3

आप Google ऐप इंजन के साथ SQLite का उपयोग नहीं कर सकते हैं इसलिए उस त्रुटि और त्रुटि के रूप DATABASESमें settings.pyरुके हुए अनुभाग पर टिप्पणी करना RuntimeError("populate() isn't reentrant")


यह बताता है कि स्थानीय रूप से सब कुछ ठीक क्यों रहा लेकिन GAE में तैनात होने पर 500 त्रुटि मिली। एक छोटा संकेत: जीएई लॉग पेज पर टेक्स्ट "उठाना" सटीक रूप से एक हिट उत्पन्न करता है जिसके कारण त्रुटि संदेश ने नोटनर द्वारा इंगित किया। उनके समाधान ने मेरा दिन बचा लिया :-)
गोल्डन थम्ब

4

आप लोड करने की प्रक्रिया में जल्दी आने वाली फ़ाइल (wsgi.py के अलावा) को छूकर अपाचे को पुनः आरंभ किए बिना इसे ठीक करने में सक्षम हो सकते हैं। उदाहरण के लिए, आपकी सेटिंग फ़ाइल:

$ touch settings.py

मैंने इसे या तो ठीक से हल नहीं किया है, लेकिन मेरे सवाल में अधिक जानकारी यहाँ है: कोड परिवर्तन निगरानी Django 1.7 के साथ mod-wsgi पर खराबी


3

अपाचे अपने कैश में wsgi फाइल को स्टोर करता है। अजगर फ़ाइलों की अपाचे कैशिंग को अक्षम करें

तो सबसे पहले wsgi फाइल को डिलीट करें और अपनी acpache को रीस्टार्ट करें और फिर से wsgi फाइल को एड करें और Apache को रिस्टार्ट करें।


2

मुझे बस उसी समस्या का सामना करना पड़ा इसलिए मैंने चारों ओर देखना शुरू कर दिया।

अब मुझे यह काम कर रहा है, इसलिए मैंने सोचा कि मुझे इसे आप लोगों के साथ साझा करना चाहिए!

सभी मैंने किया था chown user:group /to/path -Rऔर chmod 770 /to/path -Rफिर से और यह काम किया।


2

यह एक ही Apache mod-wsgi त्रुटि के लिए मान्य प्रतिक्रियाओं का एक अच्छा संग्रह जैसा दिखता है, प्रत्येक व्यक्ति एक पोस्ट करता है जो उसके लिए काम करता है, इसलिए यहाँ मेरा है:

तैनाती के बाद अपनी परियोजना की आवश्यकताओं को अद्यतन करने के लिए मत भूलना :)


2

मैंने इसी समस्या का अनुभव किया, और मेरे लिए त्रुटि का स्रोत केवल उस फ़ाइल में एक वाक्यविन्यास त्रुटि थी जिसके साथ मैं काम कर रहा था। टाइपो को ठीक करने के बाद, populate() is not reentrantत्रुटि गायब हो गई।

यदि आप wsgi स्क्रिप्ट से django चला रहे हैं, तो आप कमांड लाइन से सिर्फ wsgi स्क्रिप्ट चलाकर टाइपो की पहचान कर सकते हैं। उदाहरण के लिए:

cd /usr/local/www/wsgi-scripts/
python djangolauncher.wsgi

2

यदि कोड में स्थान और टैब का असंगत उपयोग होता है तो यह त्रुटि भी उत्पन्न हुई।


1

सेटअप: Ubuntu 14.04, Django 1.10, पायथन 3.5 (में virtualenv)।

मैंने भाग्य के बिना इन समाधानों में से कई की कोशिश की, लेकिन फिर मैंने देखा कि अपाचे त्रुटि लॉग में मेरे मामले में दो अलग-अलग त्रुटियां हैं। एक जो तब होता है जब कोई एक पृष्ठ पर जाने की कोशिश करता है, दूसरा जो शुरू में होता है। मैंने स्टार्टअप को याद किया क्योंकि मैंने आमतौर पर एक-दो बार पृष्ठ को रीफ्रेश करने की कोशिश की थी और इस प्रकार केवल बार-बार आने वाली त्रुटि को देखा।

मैंने तब स्टार्टअप त्रुटि के समाधान के लिए खोज की और इस प्रश्न के समाधान ने मेरे लिए काम किया । संक्षेप में, इसमें mod_wsgiपैकेज को एक राउंडअबाउट तरीके से अपडेट करना शामिल है ।

मुझे mod_wsgiसंस्करणों में बेमेल के बारे में महीनों से चेतावनी मिल रही थी , लेकिन अचानक इसका परिणाम अपाचे त्रुटि 500 ​​में हुआ। मेरे लिए कोई मतलब नहीं है।

मेरा अनुमान है कि यह RuntimeError: populate() isn't reentrantत्रुटि आमतौर पर एक संकेत है जो किसी स्टार्टअप त्रुटि के लिए दिखना चाहिए, जो वास्तविक समस्या को इंगित करता है।

यात्रा पर

[Sat Oct 15 03:38:08.900966 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] mod_wsgi (pid=28272): Target WSGI script '/django/GP/GP/wsgi.py' cannot be loaded as Python module.
[Sat Oct 15 03:38:08.901409 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] mod_wsgi (pid=28272): Exception occurred processing WSGI script '/django/GP/GP/wsgi.py'.
[Sat Oct 15 03:38:08.901662 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] Traceback (most recent call last):
[Sat Oct 15 03:38:08.902184 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]   File "/django/GP/GP/wsgi.py", line 16, in <module>
[Sat Oct 15 03:38:08.902217 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]     application = get_wsgi_application()
[Sat Oct 15 03:38:08.902501 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]   File "/django/env/lib/python3.5/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application
[Sat Oct 15 03:38:08.902529 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]     django.setup(set_prefix=False)
[Sat Oct 15 03:38:08.902726 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]   File "/django/env/lib/python3.5/site-packages/django/__init__.py", line 27, in setup
[Sat Oct 15 03:38:08.902755 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]     apps.populate(settings.INSTALLED_APPS)
[Sat Oct 15 03:38:08.902924 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]   File "/django/env/lib/python3.5/site-packages/django/apps/registry.py", line 78, in populate
[Sat Oct 15 03:38:08.902953 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]     raise RuntimeError("populate() isn't reentrant")
[Sat Oct 15 03:38:08.903111 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] RuntimeError: populate() isn't reentrant

चालू होना

[Sat Oct 15 03:38:08.900966 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] mod_wsgi (pid=28272): Target WSGI script '/django/GP/GP/wsgi.py' cannot be loaded as Python module.
[Sat Oct 15 03:38:08.901409 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] mod_wsgi (pid=28272): Exception occurred processing WSGI script '/django/GP/GP/wsgi.py'.
[Sat Oct 15 03:38:08.901662 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] Traceback (most recent call last):
[Sat Oct 15 03:38:08.902184 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]   File "/django/GP/GP/wsgi.py", line 16, in <module>
[Sat Oct 15 03:38:08.902217 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]     application = get_wsgi_application()
[Sat Oct 15 03:38:08.902501 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]   File "/django/env/lib/python3.5/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application
[Sat Oct 15 03:38:08.902529 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]     django.setup(set_prefix=False)
[Sat Oct 15 03:38:08.902726 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]   File "/django/env/lib/python3.5/site-packages/django/__init__.py", line 27, in setup
[Sat Oct 15 03:38:08.902755 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]     apps.populate(settings.INSTALLED_APPS)
[Sat Oct 15 03:38:08.902924 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]   File "/django/env/lib/python3.5/site-packages/django/apps/registry.py", line 78, in populate
[Sat Oct 15 03:38:08.902953 2016] [:error] [pid 28272] [remote 95.166.81.114:39651]     raise RuntimeError("populate() isn't reentrant")
[Sat Oct 15 03:38:08.903111 2016] [:error] [pid 28272] [remote 95.166.81.114:39651] RuntimeError: populate() isn't reentrant
[Sat Oct 15 03:38:43.291502 2016] [:error] [pid 28272] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Sat Oct 15 03:38:43.291579 2016] [:error] [pid 28272] Traceback (most recent call last):
[Sat Oct 15 03:38:43.291604 2016] [:error] [pid 28272]   File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Sat Oct 15 03:38:43.292356 2016] [:error] [pid 28272]     assert tlock is not None
[Sat Oct 15 03:38:43.292377 2016] [:error] [pid 28272] AssertionError: 
[Fri Oct 14 23:38:43.412942 2016] [:error] [pid 28299] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Fri Oct 14 23:38:43.413044 2016] [:error] [pid 28299] Traceback (most recent call last):
[Fri Oct 14 23:38:43.413076 2016] [:error] [pid 28299]   File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Fri Oct 14 23:38:43.425037 2016] [:error] [pid 28275] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Fri Oct 14 23:38:43.425125 2016] [:error] [pid 28275] Traceback (most recent call last):
[Fri Oct 14 23:38:43.425157 2016] [:error] [pid 28275]   File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Fri Oct 14 23:38:43.427625 2016] [:error] [pid 28274] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Fri Oct 14 23:38:43.427694 2016] [:error] [pid 28274] Traceback (most recent call last):
[Fri Oct 14 23:38:43.427722 2016] [:error] [pid 28274]   File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Fri Oct 14 23:38:43.432020 2016] [:error] [pid 28273] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Fri Oct 14 23:38:43.432078 2016] [:error] [pid 28273] Traceback (most recent call last):
[Fri Oct 14 23:38:43.432105 2016] [:error] [pid 28273]   File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Fri Oct 14 23:38:43.438577 2016] [:error] [pid 28299]     assert tlock is not None
[Fri Oct 14 23:38:43.438654 2016] [:error] [pid 28299] AssertionError: 
[Fri Oct 14 23:38:43.442174 2016] [:error] [pid 28274]     assert tlock is not None
[Fri Oct 14 23:38:43.442226 2016] [:error] [pid 28274] AssertionError: 
[Fri Oct 14 23:38:43.447227 2016] [:error] [pid 28276] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Fri Oct 14 23:38:43.447294 2016] [:error] [pid 28276] Traceback (most recent call last):
[Fri Oct 14 23:38:43.447326 2016] [:error] [pid 28276]   File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Fri Oct 14 23:38:43.448813 2016] [:error] [pid 28277] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Fri Oct 14 23:38:43.448876 2016] [:error] [pid 28277] Traceback (most recent call last):
[Fri Oct 14 23:38:43.448903 2016] [:error] [pid 28277]   File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Fri Oct 14 23:38:43.450188 2016] [:error] [pid 28273]     assert tlock is not None
[Fri Oct 14 23:38:43.450231 2016] [:error] [pid 28273] AssertionError: 
[Fri Oct 14 23:38:43.456680 2016] [:error] [pid 28275]     assert tlock is not None
[Fri Oct 14 23:38:43.456737 2016] [:error] [pid 28275] AssertionError: 
[Fri Oct 14 23:38:43.461761 2016] [:error] [pid 28277]     assert tlock is not None
[Fri Oct 14 23:38:43.461826 2016] [:error] [pid 28277] AssertionError: 
[Fri Oct 14 23:38:43.466165 2016] [:error] [pid 28276]     assert tlock is not None
[Fri Oct 14 23:38:43.466219 2016] [:error] [pid 28276] AssertionError: 
[Fri Oct 14 23:38:43.658971 2016] [mpm_prefork:notice] [pid 28268] AH00169: caught SIGTERM, shutting down
[Sat Oct 15 03:38:43.691909 2016] [:error] [pid 28272] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Sat Oct 15 03:38:43.691968 2016] [:error] [pid 28272] Traceback (most recent call last):
[Sat Oct 15 03:38:43.691996 2016] [:error] [pid 28272]   File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Sat Oct 15 03:38:43.693126 2016] [:error] [pid 28272]     assert tlock is not None
[Sat Oct 15 03:38:43.693159 2016] [:error] [pid 28272] AssertionError: 
[Fri Oct 14 23:38:44.490316 2016] [:warn] [pid 28349] mod_wsgi: Compiled for Python/3.4.0.
[Fri Oct 14 23:38:44.490407 2016] [:warn] [pid 28349] mod_wsgi: Runtime using Python/3.4.3.
[Fri Oct 14 23:38:44.505672 2016] [mpm_prefork:notice] [pid 28349] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.19 mod_wsgi/3.4 Python/3.4.3 configured -- resuming normal operations
[Fri Oct 14 23:38:44.505764 2016] [core:notice] [pid 28349] AH00094: Command line: '/usr/sbin/apache2'

एक नया प्रश्न बनाएं। सवाल जवाब के रूप में मत पूछो।
ग्राहम डम्पलटन

1
मैं एक सवाल नहीं पूछ रहा हूँ। उसी समस्या का समाधान पोस्ट करना, जिसने मेरे लिए काम किया। अपाचे त्रुटि 500 ​​को फेंक देता है और लॉग फाइल में त्रुटि वही है जो यहां पूछे गए प्रश्न में है। कृपया मेरे उत्तर को फिर से पढ़ें। :)
कोडरग्युयेज़ १२

फिर दूसरे प्रश्न से लिंक करने के बजाय अपने उत्तर में वास्तविक समाधान को शामिल करें। समस्या यह है कि अन्य पोस्ट में इस populate()मुद्दे का उल्लेख नहीं है और मेरे लिए यह पूरी तरह से अलग समस्या की तरह लग रहा है, इसलिए मैं यह नहीं देख सकता कि आप कैसे सोचते हैं कि यह एक ही मुद्दे को हल कर रहा है। जहाँ तक कोई भी बता सकता है, आपके पास एक अलग समस्या थी, जिसे आपको यहाँ पर प्रतिक्रियाओं को भ्रमित करने के बजाय एक अलग प्रश्न पूछना चाहिए था, जो उस अन्य पोस्ट में विवरण के आधार पर एक अलग समस्या की तरह दिखती है ..
ग्राहम डम्पलटन

यहां चरणों को दोहराना अनावश्यक है। त्रुटियों को एक ही लॉग में दिखाई देते हैं, बस यहाँ ओपी ने इसे शामिल नहीं किया है। एक त्रुटि तब दिखाई देती है जब पृष्ठ एक्सेस किया जाता है (यह ओपी में वह हिस्सा है), दूसरा जब अपाचे शुरू होता है (दूसरे भाग में वह भाग)।
कोडरगुय123

1

मुझे पता है कि यह सवाल पूछे जाने के बाद से कुछ समय हो गया है, लेकिन मैं सिर्फ इस मुद्दे पर भाग गया हूं क्योंकि एक समस्या के बारे में मैंने यहां चर्चा नहीं की है। मैं RuntimeError: populate() isn't reentrantCentOS 7 पर SELinux के कारण त्रुटि प्राप्त कर रहा था। मैंने Django को एक घरेलू निर्देशिका से बाहर काम किया था, और मुझे केवल SELinux बूलियन को सक्षम करना था, जिसने होम निर्देशिकाओं को पढ़ने की अनुमति दी थी, क्योंकि पॉप्युलेट () त्रुटि अनुमतियों के कारण हुई थी। मेरे लिए समाधान था setsebool -P httpd_read_user_content 1। मुझे आशा है कि इससे किसी को यह समस्या होने में मदद मिलेगी।


हमें CentOS 7 और SELinux के साथ भी यही समस्या थी। हमने chconसमस्या .soफ़ाइल के संदर्भ को बदलने के लिए इसका उपयोग करके इसे ठीक किया httpd_sys_script_exec_t
जॉन

1

उत्तरों की भीड़ इसे स्पष्ट करती है; यह एक सामान्य त्रुटि है जिसके कई मूल कारण हो सकते हैं, आमतौर पर लोड करने से संबंधित Apache / WSGI।

इस पेज पर इन सभी उत्तरों को एक प्रकार की चेकलिस्ट के रूप में कार्य करना चाहिए, और उस नस में मैं इस त्रुटि के अपने उदाहरण के मूल कारण को जोड़ना चाहता हूं: आपकी सेटिंग में एक 'आयात ओएस' जोड़ने में विफलता।

विशेष रूप से, हमारे पास हमारी टीम में एक डेवलपर था, जो एक अनावश्यक पैकेज को हटाने का इरादा रखता था, और इसके बजाय उत्पादन सेटिंग्स फ़ाइल के शीर्ष से 'आयात ओएस' को हटा दिया था। एक अपाचे पुनरारंभ के बाद, हमारे आवेदन को पुनः आरंभ नहीं किया जाएगा और हमें खतरनाक 'रनटाइमटाइम: पॉपुलेट () पुनरावृत्ति' त्रुटि नहीं है।

एक त्वरित 'अजगर प्रबंधन थिंकपैड चेक' ने इस मुद्दे को प्रकट नहीं किया, लेकिन एक 'अजगर सेटिंगहोम' ने किया; ओएस पैकेज लोड नहीं किया गया था।

यदि आपके पास यह त्रुटि है, तो अपनी सेटिंग पर ध्यान केंद्रित करें अपनी सेटिंग्स (एस) फ़ाइल और अपनी डब्ल्यूएसजीआई फ़ाइल की जांच करें।


3
इससे भी महत्वपूर्ण बात, यह सुनिश्चित करें कि आप त्रुटि लॉग में वापस जाएं और अपाचे या mod_wsgi डेमॉन प्रक्रियाओं में से एक के पुनरारंभ होने के बाद होने वाले पहले त्रुटि संदेश की तलाश करें। वह पहली त्रुटि आपको त्रुटि का असली कारण बताएगी, उसके बाद किसी भी प्रक्रिया के लिए अनुरोध reentrantकेवल त्रुटि का उल्लेख करेगा । डेमन मोड में, यह भी सुनिश्चित करें कि आप startup-timeoutविकल्प का उपयोग कर रहे हैं यदि आपको त्रुटियों को कोडिंग त्रुटियों के बजाय क्षणिक त्रुटियों के कारण है। कम से कम उस तरह से यह अपने आप ठीक हो सकता है।
ग्राहम डुप्लेटन

यह सही उत्तर है, त्रुटि सामान्य है, रनटाइमर से ठीक पहले संदेश की जांच करें।
पोपिलच

1

RuntimeError: populate() isn't reentrant

कुछ भी हो सकता है, यही कारण है कि इस प्रश्न के लिए बहुत सारे अलग-अलग उत्तर हैं।

चाल से पहले त्रुटि संदेश को देखने के लिए है RuntimeError। आपके मामले में फ़ाइल / वाक्य पर / वाक्य / त्रुटि / html/htmlquotes/quotes_django/quotespage/admin.py में पंक्ति 15 पर एक वाक्यविन्यास त्रुटि प्रतीत होती है, देखें:

Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/extra/www/htmlquotes/quotes_django/quotespage/admin.py", line 25
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] pprove_quotes.short_description = "Approve selected quotes"
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19]                  ^
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] SyntaxError: invalid syntax

1

AWS इलास्टिक बीनस्टॉक पर ध्यान दें: जो डिफ़ॉल्ट settings.pyDjango-admin द्वारा लिखा गया है, उसमें डेटा स्रोत के रूप में एक स्थानीय साइक्लाइट डेटाबेस का संदर्भ शामिल है। यह संभवतः आपके स्थानीय ओएस पर काम करेगा, लेकिन एडब्ल्यूएस ईबी पर नहीं, और populate() isn't reentrantरनटाइम त्रुटि देगा। इसके लिए परीक्षण करने के लिए, आवेदन DATABASES={<...>}में स्टेटमेंट कमेंट करें settings.py, और एप्लिकेशन को फिर से खोलें।


यह तब होता है जैसे यदि आप डिफ़ॉल्ट साइक्लाइट डेटाबेस के साथ Django संस्करण 2.2 (या बाद में) का उपयोग करके एडब्ल्यूएस ईबी पर तैनात होते हैं। आप प्राप्त करेंगे django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).के बाद RuntimeError: populate() isn't reentrant। से एडब्ल्यूएस डॉक्स : "Django 2.2 लचीला बीनस्टॉक अजगर 3.6 मंच के साथ संगत नहीं है।" (लेखन के समय)
djvg

0

मेरे पास यह समस्या थी और मुझे कोई भी जवाब नहीं मिल रहा था कि जब तक मैं अपने कमिट को वापस नहीं ले लेता। जाहिरा तौर पर मैंने ऑटो-पूर्ण होने के कारण एक आकस्मिक आयात जोड़ा था, जिसने सेटअप को खराब कर दिया था।

# found in models.py from msilib.schema import SelfReg

अपाचे त्रुटि लॉग में: RuntimeError ("पॉप्युलेट () पुनरावृत्ति नहीं है")

यह मेरे विंडोज़ देव वातावरण में ठीक काम किया, लेकिन ubuntu / apache सर्वर पर विफल रहा।


0

इस सेटिंग का क्रम बदलने के बाद मैं उसी त्रुटि में जा रहा था:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
)

इसे वापस आर्डर पर वापस करने से पहले और अपाचे को फिर से शुरू करने से समस्या ठीक हो जाती है।


0

मेरे मामले में, मैं एक था custom renderer classके लिए Django Rest Framework, कुछ प्रयोजन के लिए मैं रेंडरर वर्ग की विधि "का get_context" ओवरराइड करने के लिए किया था (: बनाने के लिए पूर्ण प्रकटीकरण django toolbarसही SQL क्वेरी गिनती दे)

मैंने उस क्लास को हटा दिया और फिर से नौकरी दी। इसने काम कर दिया।


0

मेरे मामले में त्रुटि हुई क्योंकि आवश्यक पाइप-पैकेज गायब था।

इसलिए मैंने एक किया pip install -r requirements.txt, अपाचे को फिर से शुरू किया और चीजों ने फिर से काम किया।


0

Virtualenv निर्देशिका को हटाते हुए, virtualenv को फिर से जोड़ते हुए, फिर सभी आवश्यकताओं को पुनः स्थापित करते हुए इसे मेरे लिए निर्धारित किया।


0

सूची में मेरा कारण जोड़ना। मेरे लिए यह इसलिए था क्योंकि मेरे पास एक django सेवा थी जिसे प्रक्रिया निर्देशिका के समान निर्देशिका के साथ नामित किया गया था। प्रक्रिया का नामकरण / dir ने समस्या को निर्धारित किया।


0

मेरे पास एक पुनरावर्ती था django.setup(), उदाहरण के लिए मैंने django.setup()अंदर एक लिखने की कोशिश की app/models.py, स्टैक ट्रेस में django ने इसे बाहर इंगित करने की कोशिश की:

... "site-packages/django/apps/config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
...
... ./myproject/myapp/models.py ...

तो हाँ, django सेटअप किया जा रहा है, जबकि django सेटअप करने की कोशिश नहीं करने के लिए सुनिश्चित हो ...


0

मेरे लिए अपाचे सर्वर को पुनरारंभ करने से समस्या हल हो गई। आप ऐसा कर सकते हैं कमांड $ sudo सेवा का उपयोग करके Apache2 पुनरारंभ करें


0

मेरे पास यही मुद्दा था, मेरे लिए जो काम किया गया वह डिफ़ॉल्ट डेटाबेस सेटिंग्स / settings.py में टिप्पणी कर रहा था। मैंने यह भी पढ़ा कि बाद के संस्करण django ebs के साथ संगत नहीं हैं


0

मेरे लिए mysqlclientआवश्यकताएँ आवश्यकताओं में एक गायब पैकेज था । फ़ाइल में।

पहले मैंने mysqlclientपैकेज इनस्टॉल किया:

pip install mysqlclient

तब मैंने आवश्यकताओं को अद्यतन किया।

pip freeze > requirements.txt

और इससे मेरी समस्या हल हो गई।



-1

मेरे 2 यूरो सेंट में फेंकने के लिए:

मैंने डॉकर में एक काम करने वाले सेटअप को फिर से बनाया। नया डॉकर सेटअप विफल रहा

populate isn't reentrant

जो एक सामान्य त्रुटि प्रतीत होती है। मेरे मामले में, मैंने उसकी अनदेखी की

pip install Django

आवश्यक संस्करण के बजाय नवीनतम संस्करण ( 2.0) स्थापित करता है 1.11। इसको बदलना

pip install Django==1.11

मेरी समस्या ठीक कर दी।


-1

मुझे लगता है कि यह एक सामान्य त्रुटि है जब कुछ गड़बड़ है settings.py। कभी-कभी मैं इंस्टॉल किए गए ऐप्स को एक बार में हटाकर परीक्षण और त्रुटि द्वारा समस्या का पता लगा सकता हूं। कुछ मामलों में, इसके इंस्टॉल किए गए ऐप्स से संबंधित नहीं है। लेकिन मेरे अनुभव से, सभी मामलों में इसकी समस्या settings.pyफ़ाइल के भीतर है ।


-1

जाँचें कि आपने सेटिंग्स एप इंस्टॉल किए गए अनुभाग में दो बार अपने एपीआई नामों का उल्लेख किया है।

आवेदन की परिभाषा

INSTALLED_APPS = [
    ...
    'rest_framework',
    'myapp_api',
    'myapp_api.apps.myappWebserviceApiConfig',    
]

आवेदन की परिभाषा

INSTALLED_APPS = [
    ...
    'rest_framework',
    'myapp_api.apps.myappWebserviceApiConfig',
]

डुप्लिकेट प्रविष्टियों को हटाने से मेरी समस्या हल हो गई


लेकिन ट्यूटोरियल कहता है INSTALLED_APPS = ['allauth', 'allauth.account', 'allauth.socialaccount']]
मिंग

@ इसकी वैकल्पिक है।
स्वाति श्रीवास्तव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.