欢迎转载,请支持原创,保留原文链接:blog.ilibrary.me

(2021-07更新, 可以直接在conda下通过pip install opencv-python 进行安装,然后通过import cv2; cv2.__version__查看版本信息.)

—————一下为原文————–

本文主要解释安装python opencv3中常见的问题和解决办法,环境为python3 anaconda。

正常情况下我们anaconda安装好以后用pip装依赖包就好了,但是opencv3 在python3下面pip没法安装opencv3, 只能用conda安装。conda安装会引入很多细节上需要注意的问题。

Anaconda opencv安装页面

anaconda安装

Anaconda下载页面下载 Command Line Installer.

然后从命令行安装。

安装完以后zsh下面你会大概率没法正常使用jupyter notebook, 需要修改~/.zshrc, 配置路径。

如果zsh无法正常使用jupyter notebook, 请在~/.zshrc末尾添加下面一行:

export PATH="/Users/<user_name>/anaconda/bin:$PATH" # 注意替换<user_name>为正确的用户名

opencv在python3.6+下无法安装

现在默认anaconda装好后python版本是3.6+的, 用pip安装opencv3是没法安装的,可以用conda安装.

一般建议创建一个新的环境,然后安装opencv3

conda create -n p3 
source activate p3

安装menpo和opencv3

conda install -c menpo opencv3

会抛错!

$ conda install -c menpo opencv3
Error:
UnsatisfiableError: The following specifications were found to be in conflict:
  - opencv3 -> python 2.7*
  - python 3.6*
Use "conda info <package>" to see the dependencies for each package.

原因是python 3.5以上没法安装opencv3. 解决办法是安装一个python 3.5, 然后安装opencv3

conda install python=3.5
conda install -c menpo opencv3

安装成功,命令行验证

python -c "import cv2"

OK!

启动notebook验证

jupyter notebook

然后新建python3 文件, 输入import cv2, Shift+ENTER, 抛错,找不到cv2

import cv2;
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-72fbbcfe2587> in <module>()
----> 1 import cv2

ModuleNotFoundError: No module named 'cv2'

查看查找路径会发现python指向的是3.6的路径。

import os
os.sys.path

检查python版本你会发现python指向的是Python 3.5.4 :: Continuum Analytics, Inc.

✗ python -V
Python 3.5.4 :: Continuum Analytics, Inc.

不知道具体原因。解决办法是有的,从新创建一个基于python 3.5的anaconda环境,然后再装opencv3

conda create -n p35 python=3.5 anaconda

检查python 版本

python -V
Python 3.5.3 :: Anaconda 4.4.0 (x86_64)

这次对了。

总结

anaconda+python3+jupyter notebook下面正确安装opencv3的步骤如下:

conda create -n p35 python=3.5 anaconda
source activate p35
conda install -c menpo opencv3

然后就可以在jupyter notebook里面正常使用opencv3了。