Apache+mod_wsig的一個巨坑import pandas as pd程序卡死

在開發時本地環境使用import pandas as pd一點問題也沒有,當我把它部署上Apche+mod_wsgi後直接出現程序卡死,無法訪問,也沒有任何錯誤日誌。

1-我將import pandas as pd移動到使用的函數局部中,服務正常使用。第一次訪問有稍微的卡頓,之後就不會。由於不知爲何,就先用着吧

2 當版本迭代更新功能後,第一個問題時不時會出現。終於找到原因了:
pandas使用了numpy依賴,而numpy底層是c寫的,這就是根本原因。

mod_wsgi對於配置的每個virtual host和app 掛載點都創建一個sub interpreter。python中那個著名的GIL,在通過C 擴展訪問時時,只有第一個sub interpreter纔可以正常工作,而使用其他的會導致死鎖或CRASH.

【解決方案】
在Apache的host配置中加入以下代碼:
WSGIApplicationGroup %{GLOBAL}
強制使用第一個子解釋器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章