引子
最近項(xiàng)目中用到了opencv庫(kù),需要在python中使用;
按照網(wǎng)上的教程,安裝了opencv-python庫(kù),還有系統(tǒng)相關(guān)的opencv庫(kù)
但是導(dǎo)入opencv庫(kù)報(bào)段錯(cuò)誤
問題現(xiàn)象
$ python -c 'import cv2'
段錯(cuò)誤
解決方法
查看了各種文章,無外乎幾種解決方法:
- 安裝庫(kù)
- 源碼編譯opencv庫(kù)
各路方法都試了試,還是不行,編譯opencv庫(kù)的依賴比較多,所以輕易不想嘗試。
經(jīng)過分析,發(fā)現(xiàn),如果是sudo python -c 'import cv2'就沒有問題,但是線上服務(wù)又不能用root權(quán)限運(yùn)行,所以還得解決。
既然sudo沒有問題,說明庫(kù)的安裝是沒有問題的,既然普通用戶不能導(dǎo)入,說明還是python庫(kù)的路徑問題。
再仔細(xì)分析,python的site-package導(dǎo)入有一定的順序,發(fā)現(xiàn)安裝后的opencv庫(kù)路徑普通用戶可能訪問有問題:
$ sudo find / -name 'cv2.so'
/usr/lib64/python2.7/site-packages/cv2/cv2.so
修改方法比較簡(jiǎn)單,把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í)行導(dǎo)入cv2成功。