我一直在開發(fā)使用WSGI部署在Apache服務(wù)器上的Django Web應(yīng)用程序,并且一切進(jìn)展順利。今天,我對應(yīng)用程序進(jìn)行了一些較小的更改admin.py,以嘗試自定義內(nèi)置的Django Admin界面,并且最初出現(xiàn)了語法錯誤(括號未封閉)。這意味著當(dāng)我觸摸wsgi.py并加載代碼時(我的虛擬主機(jī)上的WSGI以守護(hù)程序模式運(yùn)行),我的網(wǎng)站被內(nèi)部服務(wù)器錯誤替換,因為WSGI遇到語法錯誤時就停止了。因此,我更正了語法錯誤,并檢查了我是否再也沒有了manage.py check,并wsgi.py嘗試重新部署。但是我的網(wǎng)站仍然顯示內(nèi)部服務(wù)器錯誤!檢查Apache日志,第一系列錯誤顯示W(wǎng)SGI因my語法錯誤而失敗admin.py。但是,第二系列錯誤似乎顯示了Django內(nèi)部的錯誤:RuntimeError: populate() isn't reentrant從populate方法拋出registry.py。谷歌搜索此錯誤消息返回的信息少得令人驚訝,Django文檔中沒有這些信息。顯然,如果您在中兩次命名應(yīng)用程序,有時可能會發(fā)生這種情況settings.py,但我沒有這么做。更重要的是,settings.py自網(wǎng)站運(yùn)行正常以來,我一直沒有改變-我唯一改變的是admin.py。我嘗試還原所做的所有更改,因此我所有的Python代碼都恢復(fù)到網(wǎng)站正常運(yùn)行的狀態(tài)- populate() isn't reentrant當(dāng)我嘗試使WSGI重新加載代碼時,仍然出現(xiàn)錯誤!我還嘗試在的INSTALLED_APPS部分中注釋掉不同的應(yīng)用程序settings.py,即使僅啟用了django.contrib.staticfiles,該錯誤仍然會發(fā)生。奇怪的是,即使我注釋掉所有應(yīng)用程序,我仍然會收到錯誤消息-Django 即使未加載任何應(yīng)用程序也會拋出錯誤!有人知道這是怎么回事嗎?還是因為Apache日志中的回溯對您沒有任何幫助,所以我可以用哪種更好的方法來調(diào)試此錯誤?注意:我使用的是Django 1.7,Apache 2.2和Python 2.7。
- 3 回答
- 0 關(guān)注
- 1450 瀏覽
添加回答
舉報
0/150
提交
取消