使用Anaconda Python3安装OpenCV 3.1?

26

如何在Anaconda Python3中安装OpenCV,使OpenCV能够识别Python3可执行文件。

--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.12)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.0)
--     packages path:               lib/python2.7/dist-packages
-- 
--   Python 3:
--     Interpreter:                 /home/tamim/anaconda3/bin/python3 (ver 3.5.2)
--     Libraries:                   /usr/lib/x86_64-linux-gnu/libpython3.5m.so (ver 3.5.2)
--     numpy:                       /home/tamim/anaconda3/lib/python3.5/site-packages/numpy/core/include (ver 1.11.1)
--     packages path:               lib/python3.5/site-packages
-- 
--   Python (for build):            /usr/bin/python2.7

我使用以下 make 选项安装了 OpenCV

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D CUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..

但是在安装后,我无法在anaconda的python3中导入cv2。但是我可以从内置的python2命令中导入cv2。因此,我想它是为python2版本构建的,就像最后一行所述。

我如何为anaconda python3构建?

7个回答

44

我认为您不需要为anaconda编译OpenCV,因为一旦安装了Anaconda Python发行版,您的终端中就有这个非常方便的工具叫做“conda”。

我找到了这个网站,它提供了安装 OpenCV3 的说明。

https://anaconda.org/menpo/opencv3

我个人亲自安装过,所以只需按照这些说明尝试跟随即可。

如果您的系统中已经安装了Anaconda Python发行版,并且您正在使用Linux,则可以在终端中运行以下命令:

conda install -c menpo opencv
如果你的Anaconda安装的Python版本是2.7,那么上面的命令应该会安装OpenCV 3.1,但如果你的Python版本是3.5,则应将最后一行中的'opencv'改为'opencv3'。
conda install -c menpo opencv3

这应该会在你的Anaconda中安装OpenCV。为了检查是否已成功安装,请启动你的Python并执行以下命令:

import cv2 # import the opencv library

cv2.__version__ # this will print the version of your opencv3

希望能对你有所帮助 =)


1
这个安装包是否支持CUDA? - Tamim Addari
1
OpenCV3的URL缺少冒号。 - Daniyar
谢谢。这在64位Linux上运行正常,但在32位Linux上不行。在32位Linux上我得到了PackageNotFoundError错误。 - nawfel bgh
5
完整的URL对我无效(Python 3.5),但是这个命令有效“conda install -c menpo opencv3”。 - Eskapp
1
@TamimAddari 不,要获得CUDA支持,您必须使用标志“-D WITH_CUDA = ON”从源代码构建OpenCV。 - Owlright
显示剩余6条评论

24

如果您遇到以下错误:

    UnsatisfiableError: The following specifications were found to be in conflict:
            opencv 2.4.11* -> numpy 1.9* -> python 2.6* -> openssl 1.0.1*
            python 3.6*
            Use "conda info " to see the dependencies for each package.

只需安装 Python 3.5 并重试。

conda install python=3.5
conda install -c menpo opencv  # whichever
conda install -c menpo opencv3 # you need

12

试一试这种方法,对我有效。Anaconda3-4

conda create -n opencv 
activate opencv
conda install -c https://conda.binstar.org/menpo opencv3

8

以上方法对我都不起作用。然而,我发现这一行代码可以解决我的问题:

conda install -c conda-forge opencv

8

使用conda v4.3.16和python v3.6版本,以下命令对我有效:

conda install -c anaconda opencv

4
如果您想针对特定的Anaconda环境编译OpenCV,可以在cmake中指定PYTHON_EXECUTABLE、PYTHON_INCLUDE和PYTHON_LIBRARY、PYTHON_PACKAGES_PATH、PYTHON_NUMPY_INCLUDE_DIR变量。在下面的示例中,我有一个名为opencv340的Anaconda环境,位于/home/yourself/anaconda3/envs/opencv340,因此我将为cmake指定上述变量,如下所示:
-DPYTHON_EXECUTABLE=/home/yourself/anaconda3/envs/opencv340/bin/python3 \
-DPYTHON_INCLUDE=/home/yourself/anaconda3/envs/opencv340/include \
-DPYTHON_LIBRARY=/home/yourself/anaconda3/envs/opencv340/lib/libpython3.6m.so \
-DPYTHON_PACKAGES_PATH=/home/yourself/anaconda3/envs/opencv340/lib/python3.6/site-packages \
-DPYTHON_NUMPY_INCLUDE_DIR=/home/yourself/anaconda3/envs/opencv340/lib/python3.6/site-packages/core/include

您将会看到OpenCV选择了正确的Python版本,即您提供路径的Anaconda环境中的版本。

然后,您需要将从OpenCV构建目录中复制cv2*.so文件到Anaconda环境的site-packages目录中。

您的site-packages目录应该位于以下某个位置:

/home/yourself/anaconda3/envs/opencv340/lib/python3.6/site-packages

您可以通过Python控制台获得实际位置:

>>> import sys
>>> print(next(p for p in sys.path if 'site-packages' in p))

然后(根据您的情况和实际名称适当调整):

cp /path/to/your/opencv/build/directory/lib/python3.6/site-packages/cv2.cpython-36m-x86_64-linux-gnu.so /home/yourself/anaconda3/envs/opencv340/lib/python3.6/site-packages/.

这样你就可以在Python控制台中使用import cv2了。

我刚刚在Ubuntu 16.04上完成了此操作。


3

conda:4.7.10, python:3.7.3, channel:default

我从default信道成功安装了opencv,我将其安装在一个干净的环境中,没有出现任何冲突。

conda install opencv

The following NEW packages will be INSTALLED:

  blas               pkgs/main/osx-64::blas-1.0-mkl
  bzip2              pkgs/main/osx-64::bzip2-1.0.8-h1de35cc_0
  cairo              pkgs/main/osx-64::cairo-1.14.12-hc4e6be7_4
  ffmpeg             pkgs/main/osx-64::ffmpeg-4.0-h01ea3c9_0
  fontconfig         pkgs/main/osx-64::fontconfig-2.13.0-h5d5b041_1
  freetype           pkgs/main/osx-64::freetype-2.9.1-hb4e5f40_0
  gettext            pkgs/main/osx-64::gettext-0.19.8.1-h15daf44_3
  glib               pkgs/main/osx-64::glib-2.56.2-hd9629dc_0
  graphite2          pkgs/main/osx-64::graphite2-1.3.13-h2098e52_0
  harfbuzz           pkgs/main/osx-64::harfbuzz-1.8.8-hb8d4a28_0
  hdf5               pkgs/main/osx-64::hdf5-1.10.2-hfa1e0ec_1
  icu                pkgs/main/osx-64::icu-58.2-h4b95b61_1
  intel-openmp       pkgs/main/osx-64::intel-openmp-2019.4-233
  jasper             pkgs/main/osx-64::jasper-2.0.14-h636a363_1
  jpeg               pkgs/main/osx-64::jpeg-9b-he5867d9_2
  libgfortran        pkgs/main/osx-64::libgfortran-3.0.1-h93005f0_2
  libiconv           pkgs/main/osx-64::libiconv-1.15-hdd342a3_7
  libopencv          pkgs/main/osx-64::libopencv-3.4.2-h7c891bd_1
  libopus            pkgs/main/osx-64::libopus-1.3-h1de35cc_0
  libpng             pkgs/main/osx-64::libpng-1.6.37-ha441bb4_0
  libtiff            pkgs/main/osx-64::libtiff-4.0.10-hcb84e12_2
  libvpx             pkgs/main/osx-64::libvpx-1.7.0-h378b8a2_0
  libxml2            pkgs/main/osx-64::libxml2-2.9.9-hf6e021a_1
  mkl                pkgs/main/osx-64::mkl-2019.4-233
  mkl_fft            pkgs/main/osx-64::mkl_fft-1.0.12-py37h5e564d8_0
  mkl_random         pkgs/main/osx-64::mkl_random-1.0.2-py37h27c97d8_0
  numpy              pkgs/main/osx-64::numpy-1.16.4-py37hacdab7b_0
  numpy-base         pkgs/main/osx-64::numpy-base-1.16.4-py37h6575580_0
  opencv             pkgs/main/osx-64::opencv-3.4.2-py37h6fd60c2_1
  pcre               pkgs/main/osx-64::pcre-8.43-h0a44026_0
  pixman             pkgs/main/osx-64::pixman-0.38.0-h1de35cc_0
  py-opencv          pkgs/main/osx-64::py-opencv-3.4.2-py37h7c891bd_1
  zstd               pkgs/main/osx-64::zstd-1.3.7-h5bba6e5_0

$python                                                                                                
Python 3.7.3 (default, Mar 27 2019, 16:54:48)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.2'
>>>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接