奇怪的問(wèn)題。我有一個(gè)以兩種方式運(yùn)行的Django站點(diǎn):正常通過(guò)apache / wsgi:80python manage.py runserver測(cè)試時(shí)帶:8000通過(guò)wsgi,一切工作正常,但是使用runserver,當(dāng)我進(jìn)入任何錯(cuò)誤頁(yè)面(debug = True)時(shí),頁(yè)面會(huì)加載一半,然后永遠(yuǎn)保持加載狀態(tài),而不會(huì)顯示回溯。有關(guān)加載“ halfway”的一些注意事項(xiàng):對(duì)于相同的錯(cuò)誤,似乎加載到完全相同的點(diǎn)對(duì)于不同的錯(cuò)誤,它將是不同的點(diǎn)(根據(jù)Firebug,回溯的不同部分和文件大小都不同)對(duì)于不同的瀏覽器,它將加載到不同的位置(如果重新加載頁(yè)面,則加載到相同的位置)。一個(gè)例子:我現(xiàn)在有一個(gè)ValueError,它加載到回溯的第一步,在“本地變量”處request加載。在Firefox中,它的負(fù)載上限為SSH_CONNECTION,而在Chrome中的負(fù)載為上限SHELL(在Firefox中可以正常加載)。服務(wù)器重新啟動(dòng)無(wú)效。正常(非錯(cuò)誤)頁(yè)面加載正常??刂婆_(tái)不顯示任何特殊內(nèi)容,僅顯示代碼為500的請(qǐng)求。
2 回答

紫衣仙女
TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
聽起來(lái)pdb.set_trace()您的代碼中有一個(gè)地方。我猜想在__unicode__呈現(xiàn)錯(cuò)誤頁(yè)面時(shí)會(huì)調(diào)用某種方法或某種東西。這基于開發(fā)服務(wù)器的輸出被緩沖的概念。
另一個(gè)(很有可能)的可能性是,您在某個(gè)地方進(jìn)行了無(wú)窮無(wú)盡的遞歸調(diào)用(可能與上述set_trace情況在相似的位置),但是遞歸功能花費(fèi)的時(shí)間足夠長(zhǎng),以至于您永遠(yuǎn)不會(huì)看到RuntimeError: maximum recursion depth exceeded錯(cuò)誤。
例如:
import time
def foo():
time.sleep(.2)
bar()
def bar():
foo()
bar()
否則,要使Python程序掛起是非常困難的,除非您故意這樣做。
添加回答
舉報(bào)
0/150
提交
取消