引子
最近項目中用到了opencv庫含懊,需要在python中使用;
按照網上的教程歌豺,安裝了opencv-python庫赵辕,還有系統(tǒng)相關的opencv庫
但是導入opencv庫報段錯誤
問題現(xiàn)象
$ python -c 'import cv2'
段錯誤
解決方法
查看了各種文章,無外乎幾種解決方法:
- 安裝庫
- 源碼編譯opencv庫
各路方法都試了試身辨,還是不行丐谋,編譯opencv庫的依賴比較多,所以輕易不想嘗試煌珊。
經過分析号俐,發(fā)現(xiàn),如果是sudo python -c 'import cv2'就沒有問題定庵,但是線上服務又不能用root權限運行吏饿,所以還得解決。
既然sudo沒有問題蔬浙,說明庫的安裝是沒有問題的猪落,既然普通用戶不能導入,說明還是python庫的路徑問題敛滋。
再仔細分析,python的site-package導入有一定的順序兴革,發(fā)現(xiàn)安裝后的opencv庫路徑普通用戶可能訪問有問題:
$ sudo find / -name 'cv2.so'
/usr/lib64/python2.7/site-packages/cv2/cv2.so
修改方法比較簡單绎晃,把cv2.so拷貝到用戶的路徑就可以了:
mkdir -p .local/lib/python2.7/site-packages
cp /usr/lib64/python2.7/site-packages/cv2/cv2.so .local/lib/python2.7/site-packages
再次執(zhí)行導入cv2成功。