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

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