2013-05-13 53 views
1

我正在使用一個Python項目,目前正在使用Django,它在表單發佈過程中完成了很多NLP工作。我正在使用NLTK包,並對我的代碼進行分析並試驗,我發現代碼所需的大部分時間都是執行NLTK和各種其他包的導入過程。我的問題是,有沒有辦法讓服務器啓動,執行這些導入,然後等待請求,將它們傳遞給使用已導入包的函數?這比在每個請求上執行此類導入要快得多而且浪費少。如果有人有任何想法可以避免在每個請求中導入大型軟件包,那麼如果您能幫助我,這將非常棒!Python - Web服務器可以避免爲每個請求提供內容嗎?

感謝, 卡勒姆

+1

你是如何部署Django的? CGI,fCGI,WSGI還是其他? (對於其他評論者:是的,你可以通過CGI運行Django)。 – 2013-05-13 22:40:33

+0

我現在只使用開發服務器,但我的意圖(尚未深入研究)是Nginx上的WSGI。儘管如此,我非常適應這個需求。 – 2013-05-13 22:42:40

+1

您應該記住,Django開發服務器在運行時自動重新加載修改後的模塊,這樣就不必重新啓動。也許這就是爲什麼NLTK在每個請求中重新加載的原因......我想這在使用WSGI時不會發生...... – 2013-05-13 22:56:57

回答

3

Django的,在大多數部署機制,確實爲每個請求輸入模塊。即使開發服務器僅在其更改時重新加載代碼。我不知道你是如何驗證所有進口每次都重新運行,但肯定不會發生。

+0

好的,謝謝。我基本上只是比較我的代碼在本地運行到Django本地主機上的方式;我會更徹底地檢查我的代碼,並試圖弄清楚。乾杯。你知道Django的開發服務器是否這樣做? – 2013-05-14 11:28:49

相關問題