今天使用 Nginx 部署 Django應用。安裝python庫都顯示成功安裝。
嘗試啟動 uwsgi 服務,竟然報錯
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pymysql
以為 python setup.py install 沒安裝成功,去python下的 site-packages 目錄下看,確實有 PyMySQL-0.7.10-py2.7.egg ,
懷疑安裝時出錯了,就重新 python setup.py install 裝一遍,也顯示安裝成功,
使用 pip list 也能看到 PyMySQL,確定這次不是安裝出錯的問題。
結果還是一樣的錯誤。
懷疑是Python版本問題,換成Python2.7.10后,依舊是一樣的錯誤。
折騰了好久,最后才注意到一個問題:安裝完以后,不關閉secureCRT窗口,直接進入Python,導入 pymysql 就沒問題。關閉secureCRT窗口后重新進入,再導入就會報錯。
這才懷疑可能是權限問題。進入site-packages目錄看了下 PyMySQL-0.7.10-py2.7.egg 的權限,確實沒有任何執行權限,只有讀的權限。因為是使用新建的用戶來安裝的,
才出現這種無權限問題。
解決方法:賦予 site-packages目錄 或整個python目錄 權限, sudo chmod -R 775 [目錄路徑]
在 Linux下,對於自己新建的用戶,要特別注意權限問題。
