想給python3裝一個opencv的庫,結果搗鼓半天,倒給python2.x裝上cv2了,而python3裏import cv2則一直失敗。python
首先想到動態連接庫,因而添加/usr/lib/python3.5/site-packages
到ld.so.conf
中。
失敗。linux
在網上搜到有答案說要安裝python頭文件。我查看/usr/include
,有python3.5m
目錄,包含頭文件。
因而想不是這個問題。python2.7
而後想到查看lib
中的site-packages
目錄。因而比較/usr/lib/python3.5/site-packages
和/usr/lib/python2.7/site-packages
目錄。發現2.7中有cv2.so
,而安裝了cv2的python3裏只有一個egg-info目錄。因而想多是這個缺.so文件的問題。
同時在網上看到一答案,指出:對於執行import cv2
出現的找不到相關模塊的問題其實在OpenCV自己的網站上就有說明:
「Python 2.6 bindings for OpenCV are included within the package, but not installed. You can copy the subdirectory opencv/Python2.6/Lib/site-packages into the respective directory of the Python installation. This procedure will be automated in the next OpenCV update. 」
即咱們只須要把OpenCV安裝目錄下的Python2.6/Lib/site-packages中的文件拷貝到Python2.6安裝目錄下的Lib/site-packages便可。
把該解決方法套用過來,將OpenCV安裝目錄下(個人是/usr/local/lib(/python3.5/site-packages)
)的cv2.cpython-35m-x86_64-linux-gnu.so
文件拷貝到python3.5安裝目錄下的lib/sige-packages
目錄下(個人是/usr/lib/python3.5/site-packages
)便可。
拷貝過去,測試import cv2
,成功,問題解決。ide
啓發文章測試