我試圖發現在Django 1.8啓動時出現延遲的原因,特別是在調試器(在我的情況下爲WingIDE 5和6)中運行時,但不僅如此。Django 1.8啓動延遲故障排除
最小測試用例:Django 1.8教程「poll」示例,完成到「manage.py runserver」工作的第一個點。所有的默認配置,使用SQLite。 Python 3.5.2與Django 1.8.14,在一個新的venv。
在Linux(Mint 18)和Windows(7-64)的命令行中,這可能會以2秒的速度運行,以達到「正在啓動開發服務器」消息。但在Windows上,它有時需要10+秒。在兩臺機器上的調試器中,可能需要40秒。
一個特定問題:通過在django/__init__.py setup()
的開始和結尾處放置打印語句,我注意到在「正在啓動...」消息之前以及在該消息之後再次調用此函數兩次;前兩次分別貢獻了一半的延遲。這表明django已經開始三次了。那個目的是什麼,還是它表明一個問題?我發現我可以使用runserver --noreload選項去掉前兩個啓動()中的一個,但是爲什麼它首先發生?還有一個startup()調用「Starting ...」消息)。
總結問題: - 對延遲負責的任何見解? - 爲什麼Django需要啓動三次? (或兩次,即使--noreload)。
有同樣的問題,降級你的python3.5.2到python3.4.4,它會工作得很好。然後重建你的環境。 – sebb
@sebb很高興不會感到孤單:-)。你有什麼想法從3.4.4改變到3.5.2導致這種情況?我相信你做出這樣的改變會讓你的問題消失。但是,這樣的改變太容易修復Python版本本身的外設。 – gwideman
據我所知,python3.5,django和mint存在問題。不幸的是,我不知道是什麼問題。同事也有同樣的問題,告訴他降級蟒蛇和所有工人罰款。 – sebb