Anaconda使用教程——Windows中python的opencv2x与opencv3x共存解决办法

时间:2021-12-20 23:25:23

python的版本问题与opencv的版本问题可能是初学python图像处理时最令人头痛的问题,社区里或者是git上、书本上可以找到的demo有python2写的,也有python3写的,不过相对来说python的版本差异不太影响理解代码,无非是名字换一换、语法变一变。最头大的是opencv的版本,opencv2与opencv3的差异不小,很多函数都有变动,如果是opencv2和3的版本问题,那跑别人的demo都需要一番功夫研究库里函数的功能和使用方法,甚至把代码版本“翻译”过来,实在是很不方便。

笔者最初也一直被opencv的版本问题困扰,近期发现了一种完美解决opencv2和3共存的方法,利用Anaconda对python包的管理,创建多个python环境,就可以在不同的环境中安装不同版本的opencv,只不过这篇博文是在Windows当中实现的,日后在Ubuntu里尝试过后再分享给大家。

Anaconda是一个专门用来解决python多种不同版本的环境的包管理环境,如上所述,它能够创建多个python的依赖环境,可以对每一个环境内自行配制所需要的依赖。它的安装很简单:

1、到官网或清华大学的镜像站下载安装包:清华大学anaconda镜像     #清华的镜像还是比官网快很多的

2、双击安装文件安装到所需目录即可     #中间的Advanced Options提供了两个选项,第一个是是否将anaconda加入Windows环境变量,建议勾选,这样可以方便在cmd窗口中直接指令调用它。第二个是设置它的默认python版本是3.6

以上操作完成后,系统菜单中会多出以下几个选项:

Anaconda使用教程——Windows中python的opencv2x与opencv3x共存解决办法

其中,Anaconda Prompt是anaconda的命令行窗口,Anaconda Navigator是图形界面,都可以进行环境管理操作。

Anaconda安装时包含了python3.6以及很多的依赖,为了验证Anaconda是否安装成功,可以进入Prompt内直接调用python:

Anaconda使用教程——Windows中python的opencv2x与opencv3x共存解决办法

安装时我们选择了添加环境变量,所以也可以用Windows的cmd打开,快捷键Win+r打开后输入cmd进入命令行后调用python:

Anaconda使用教程——Windows中python的opencv2x与opencv3x共存解决办法

调用成功,而且可以看到python的版本信息是Anaconda,说明安装成功。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda #更改设置为清华源
conda config --set show_channel_urls yes #搜索时显示源地址
conda create -n python27 python=2.7     #-n后是新环境的名字,可以任取,其后是选择python的版本,等于号后就是版本号

Anaconda是以包的形式进行管理的,刚安装完的Anaconda只有一个root环境,相当于一个根目录,是所有其他再创建的环境的root,也就是说root内的依赖会被所有环境共享,所以我们一般不要轻易把包安装在root下,刚安装完后就新建一个环境,上例中新环境名为python27,基于2.7版本的python。

激活一个环境的命令是:

activate python27       #python27是自己创建的环境名

查看当前已有的环境:

conda info -e

Anaconda使用教程——Windows中python的opencv2x与opencv3x共存解决办法

上图可以看到已有的三个环境,python27、python3以及root,root后带了星号表示它是一个根目录,另外的是用户创建的环境。

激活root环境的指令可以是:

activate root(或D:\anaconda)                 #root可以被替换为anaconda的安装目录

退出一个环境的指令时:

deactivate

至此,Anaconda的基本操作就介绍完了。下面就轮到主题:解决opencv2与3的共存。

可以看到,上文中已经提到建立了两个python的环境,一个是2.7版本的名叫python27,一个是3.6版本的名叫python3。希望实现的是在python27这个环境中安装opencv2x,在python3这个环境中安装opencv3x。以下描述的是在python环境中两种安装opencv的方法:

1、到opencv官网下载.exe安装包安装,这个方法需要在安装好后将系统环境变量设置好,此类教程众多,不再赘述。安装完成后,需要做的是将opencv安装目录下.\build\python\2.7\x64\cv2.pyd文件拷贝至Anaconda安装目录下.\envs\python27\Lib\site-packages\这一文件夹中,完成安装和配置,测试:

Anaconda使用教程——Windows中python的opencv2x与opencv3x共存解决办法

2、opencv其实还有很多非官方的包,可以直接通过pip或conda安装opencv-python,这目前这一包是3.4版本的opencv。操作十分简单,只需激活python3环境后输入指令:

pip install opencv-python                #这是一个基本版的opencv,可以直接安装附带更多模块的opencv-contrib-python

Anaconda使用教程——Windows中python的opencv2x与opencv3x共存解决办法

大功告成。具体在开发时,只需先激活特定的python环境,而后命令行输入spyder打开IDE或者使用其他的IDE即可。若环境内还没有spyder这些包,只需使用命令安装:

conda install spyder

诸位若有疑问或有更方便快捷的方法,请评论分享,谢谢!