最近因为在已经安装了tensorflow的环境中又装了个opencv,结果突然发现import tensorflow一句竟然会导致程序崩溃!?到网上查了下发现是因为conda install opencv3会导致旧版本的numpy覆盖新版本的tensorflow带的numpy导致各种复杂的问题。在尝试重装numpy无效后我决定重新配置一次环境,并记录下过程和大家分享:
1.Anaconda的安装
anaconda的安装是十分容易的,不过如果选了add to path容易出错,建议装好后手动配置环境变量。
2.创建并激活虚拟环境
由于上次先装的tensorflow结果出错了,所以这次我决定先装opencv。当然第一步是创建一个虚拟环境:
第一步,打开AnacondaPrompt
第二步,输入
conda create -n <your_enviroment_name> python=<any_version>
尖括号<>中的内容可以替换为你想要的环境名和python版本,我这里使用的是3.6.8。
这样我们就创建好了一个虚拟环境
activate <your_enviroment_name>
激活你的虚拟环境,网上提供了很多安装opencv的方法,但大多在我们这里不适用。
这里介绍一下无效的方法,也是给自己提个醒,不能完全照抄网上的
=============================分割线================================
无效的方法一:conda install -c https://conda.anaconda.org/menpo opencv3这条代码或许对于其他python版本有用,但windows上对于python3.6是无效的
如图所示,在windows下该频道内的opencv最高支持到python3.5,所以如果想通过这条命令安装opencv3就用低一点的版本吧。
无效的方法二:pip3 install opencv-python==3.4.3.18(这个版本号可以随意换)
pip3 install opencv-contrib-python==3.4.3.18
这两条命令直接运行是会安装在Anaconda的安装目录下:Anaconda3/Lib/site-packages中,所以对于我们的虚拟环境来说是没有效果的。
==============================分割线=============================
3.安装opencv和tensorflow
我的方法:
1.还是在虚拟环境中,使用cd命令先来到Anaconda3/envs/<your_enviroment_name>/Scripts目录下(这里是虚拟环境中pip.exe的安装目录)
2.输入pip.exe install opencv-python==3.4.3.18
pip.exe install opencv-contrib-python==3.4.3.18
3.输入conda install tensorflow(-gpu)
使用conda install的好处就是它会帮你检查依赖包,以免你安装了错误的版本或少安装,但有时也会出问题,比如先使用conda install tensorflow-gpu,再使用conda install opencv3,那么你的numpy版本就很可能被替换掉。
请注意你只能在该虚拟环境下使用这两个库,在base环境时(刚打开anaconda prompt时的环境)是不能使用的,而如果想在spyder、jupyter中使用,你还需要在该环境中安装spyder等。可以使用conda install spyder。
原文地址:https://www.cnblogs.com/TomJin/p/11135618.html