1. 程式人生 > >ubuntu16.04下python2.7和python3.6各自呼叫不同的版本的opencv

ubuntu16.04下python2.7和python3.6各自呼叫不同的版本的opencv

本想著python2.7呼叫opencv2.xxx版本的,但是由於我的電腦安裝cuda是9.0, 而9.0不支援opencv2.xxx,所以只好用python2.7呼叫opencv3.4.0, 安裝opencv3.4.0的過程和前面的安裝基本一致,但是我不想opencv3.4.0安裝到/usr/local目錄下[python3.4.1在這個目錄下],所以自己指定安裝目錄,例如我將opencv3.4.0安裝在/home/xiongdeng/application/opencv340forpython2.7,記錄命令如下:

  下載解壓後,進入解壓目錄:

mkdir bulid

cd build

cmake -D CMAKE_BUILD_TYPE

=RELEASE-D CMAKE_INSTALL_PREFIX=/home/xiongdeng/application/opencv340forpython2.7 ..

[這一步可能會出錯,百度一下即可,直接設定為OFF,具體忘了]

make -j8

sudo make install

到此為止opencv3.4.0安裝完畢,但是python2.7還不能使用,opencv340forpython2.7的目錄結構如下:


進入lib,發現有python2.7目錄,裡面有dist-packages/cv2.so


將cv2.so檔案cp到/usr/local/lib/python2.7/dist-packages即可.

這裡補充說明

檢視一下python2.7的import路徑可以使用命令

為什麼cv2.so檔案cp到/usr/local/lib/python2.7/dist-packages即可,我的理解是,cv2.so這個模組裡面應該有指明瞭我們自定義安裝opencv3.4.0的安裝路徑,這樣就可以找到libopencv等其他檔案.

當然也可以不用cp cv2.so檔案,新增python2.7預設import路徑即可,可參考這篇文章Python新增預設模組搜尋路徑

最後可以用這個程式碼測試


如果不放心,不知道能不能使用opencv,可以寫一個py檔案,程式碼如下,分別用python3.6和2.7可以執行,則說明成功了.