2017-03-07 143 views
3

我想在我的機器上安裝Python3的OpenCV 3.1.0。因爲我的Ubuntu 16.04,我該指南正是以下:不能使用python3安裝openCV 3.1.0。 CMAKE不包括或正確鏈接python

http://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/

不過,我在第4步麻煩,運行cmake的經過。我cmake的程序的輸出具有這個片段:

-- OpenCL: 
--  Version:      dynamic 
--  Include path:    /home/kevin/opencv-3.1.0/3rdparty/include/opencl/1.2 
--  Use AMDFFT:     NO 
--  Use AMDBLAS:     NO 
-- 
-- Python 2: 
--  Interpreter:     /home/kevin/.virtualenvs/cv/bin/python (ver 3.5.2) 
-- 
-- Python 3: 
--  Interpreter:     /home/kevin/.virtualenvs/cv/bin/python3 (ver 3.5.2) 
-- 
-- Python (for build):   /home/kevin/.virtualenvs/cv/bin/python 
-- 
-- Java: 
--  ant:       NO 
--  JNI:       /usr/lib/jvm/java-8-oracle/include /usr/lib/jvm/java-8-oracle/include/linux /usr/lib/jvm/java-8-oracle/include 
--  Java wrappers:    NO 
--  Java tests:     NO 

CMake的文件似乎沒有下蟒段(圖書館,numpy的,packages_path)正確鏈接缺少的屬性。我試着編譯opencv並安裝它,當我加載python3並導入cv時,它說它找不到cv包。

我試圖修改CMake的命令,因此而不是使用指南建議是什麼,我添加了三個參數給力的cmake包括失蹤Python特性(最後三個屬性是我的修改):

cmake -D CMAKE_BUILD_TYPE=RELEASE  \ 
-D CMAKE_INSTALL_PREFIX=/usr/local  \ 
-D INSTALL_PYTHON_EXAMPLES=ON  \ 
-D INSTALL_C_EXAMPLES=OFF  \ 
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules  \ 
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python  \ 
-D BUILD_EXAMPLES=ON \ 
-D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so \ 
-D PYTHON_NUMPY_INCLUDE_DIR=~/.virtualenvs/cv/lib/python3.5/site-packages/numpy/core/include \ 
-D PYTHON_PACKAGES_PATH=~/.virtualenvs/cv/lib/python3.5/site-packes .. 

但仍然,cmake的輸出是相同的(它只列出解釋器,沒有其他python屬性),當我嘗試構建opencv並安裝它時,我的python interpreter找不到opencv包。

我完成安裝opencv後,我的/usr/local/lib/python3.5/文件沒有site-packages目錄。

任何人都可以指向正確的方向嗎?我一直試圖搜索如何解決這個問題的過去幾個小時,但到目前爲止找不到方法,所以我非常感謝任何指導。謝謝!

更新

我意識到我必須添加-D BUILD_opencv_python3 = yes來CMake的命令,這樣的OpenCV查找的Python庫。然而,這是新的輸出,我從cmake的獲得:

-- Python 3: 
--  Interpreter:     /home/kevin/.virtualenvs/cv/bin/python (ver 3.5.2) 
--  Libraries:     NO 
--  numpy:      NO (Python3 wrappers can not be generated) 
--  packages path:    lib/python3.5/site-packages 

任何想法,爲什麼CMake的不正確(甚至當我添加「-D PYTHON_LIBRARY =/usr/lib目錄/ x86_64的Linux的找到我的Python 3庫-gnu/libpython3.5m.so「到cmake選項)?

更新

我通過刪除整個/ build目錄,並運行cmake的一個新的目錄解決了這一問題。我認爲這個錯誤繼續顯示,因爲cmake完成了一些緩存,但添加標誌-D BUILD_opencv_python3 = yes似乎對我有用。

+0

您的PYTHON_PACKAGES_PATH拼寫正確嗎?最後一個文件夾是'site-packes'。它不應該是'網站包'嗎? –

+0

謝謝,這確實是一個錯字。不過,我通過刪除整個/ build目錄並再次運行cmake(使用-D BUILD_opencv_python3 = yes)來解決了我的問題。我認爲它是由於某種cmake緩存造成的,所以當我刪除所有內容並重新開始時,錯誤消失了。 – user3667125

+0

你確實回答了你的問題。如果不是問題中的更新,而是提供答案並接受它,那將會很好。 查看更多https://stackoverflow.com/help/self-answer –

回答

6

我通過刪除整個/ build目錄並再次運行cmake(使用-D BUILD_opencv_python3 = yes)解決了我的問題。我認爲它是由於某種cmake緩存造成的,所以當我刪除所有內容並重新開始時,錯誤消失了。

+1

我有同樣的問題,這爲我工作(Ubuntu 16.10,python3,與contrib Opencv3) –