答:为了避免库依赖冲突。所以在安装pytorch、tensflow等时最好创建虚拟环境进行安装。
(1)打开anaconda prompt,输入如下代码:
conda create -n opencv python=3.6
opencv 是我自己给虚拟环境起的名字;
3.6 是我选的虚拟环境中的python的版本。
这两个东西,大家可以根据自己的需求自行决定。
(2)在创建过程中,会有一个 y or n 的选择,大家选择y,然后按回车键即可。回车后,运行结果如下,则环境创建成功。
(3)查看现有环境,代码如下:
conda env list
运行结果如下,从中可以看到创建的opencv已在其中,所以环境创建成功:
(1)输入以下代码:
conda activate opencv
运行结果如下,说明激活成功:
安装OpenCv时,必须保证其版本与其所处环境的python的版本一致。我所创建的opencv环境中的python版本是3.6,则其所对应的OpenCv的版本是3.4.1.15。如此选择的原因如下:
(1)因为opencv中的有些图像提取特征点的算法申请了专利,在3.4.2以后的版本都用不了,而3.4.1.15这个版本中还可以用。
(2)而3.4.1.15版本的OpenCv需要python3.6才能支持。
安装代码如下:
pip install opencv-python==3.4.1.15
运行结果如下:
为什么要安装opencv-contrib-python?
opencv-contrib-python是opencv-python的增强版,里面有一些比较好使的算法比如shift等具有专利保护,商用需要收费。
这里需要特别注意:opeccv-python和opencv-contrib-python的版本必须一致。
安装代码如下:
pip install opencv-contrib-python==3.4.1.15
运行结果如下:
代码如下:
python #进入到python环境
import cv2
print(cv2.__version__) #注意:version两边各是两个下划线
运行结果如下:
如运行结果所示,opencv安装成功。
接着上面,以opencv为例。
(1)激活虚拟环境
激活代码如下:
conda activate opencv
(2)进入虚拟环境之后,在里面安装ipykernel
安装代码如下:
pip install --user ipykernel
运行结果如下:
(3)将虚拟环境加入到Jupyter
代码如下:
python -m ipykernel install --user --name opencv --display-name opencv
注意:在这儿可能会遇到问题——此执行代码时会出现下面情况:
深层原因:
prompt-toolkit 的版本过高所致。
解决方法:
降低prompt-toolkit 的版本。
安装低版本的prompt-toolkit,代码如下:
pip install prompt-toolkit==2.0.10
运行结果:
此时,问题已经解决了。
则这时执行代码
python -m ipykernel install --user --name opencv --display-name opencv
的结果为:
这说明已经成功添加 虚拟环境opencv 到 jupyter notebook 中。
但这时又出现了问题——在 jupyter notebook 中打开opencv后,出现连接不上内核的情况。
究其原因可能还是一些东西版本过高所致,对其进行降版本即可。
于是,我就进行了以下降版本操作:
pip install ipykernel==4.9.0
这步降低 ipykernel 的版本的操作,没有解决问题。
pip install tornado==4.2
这步降低 tornado 的版本的操作,也没有解决问题。
pip install pyzmq==19.0.2
终于,这步降低 pyzmq 的版本的操作,使问题得到了解决——在 jupyter notebook中打开opencv后,显示内核就绪,即opencv环境在 jupter notebook中可以正常运行。
(1)查看安装了哪些虚拟环境kernel(在base或虚拟环境下运行都可以)
查看代码如下:
jupyter kernelspec list
运行结果:
(2)删除指定的kernel
jupyter kernelspec uninstall myenv(自己的虚拟环境的名字)