【谈谈那些跳过的坑】Anaconda环境已安装TensorFlow情况下安装OpenCV
由于个人需要,安装TensorFlow后还需要安装OpenCV,以满足我的需求。我在很久之前已经安装了python、anaconda、tensorflow-gpu,目标检测算法中需要同时import tensorflow和cv2,因此还需在之前环境的基础上安装OpenCV。安装过程中不太顺利,虽说只要下载opencv再安装上即可,但是中途还是会有一些麻烦。希望这篇博文能够解决TFer/CVer们相似的问题。
个人PC环境:
- Windows 10
- Python 3.5.4/Python3.5.2
- Anaconda3(64-bit)
- Pycharm 2017.3
注:
- 由于我的Python环境是通过Anaconda安装的,使用Anaconda安装Python的默认版本是3.6,又因为TensorFlow最高支持py3.5,因此将python3.6换成了python3.5.4,安装tensorflow后tensorflow中的python.exe版本是3.5.2,因此pc中存在两个python环境。
- 安装OpenCV之前需要确保已经安装pip和numpy库,如果是anaconda环境,则无需担心,因此anaconda中自带的有,但是可能需要升级版本才能顺利安装。
1 安装pip(Anaconda可跳过)
2 安装numpy
如果是anaconda环境,则无需安装,但是可能会因为版本较低而导致opencv安装失败,博主就遇到了此类问题。报错显示为:
RuntimeError: module compiled against API version 0xb but this version of numpy is 0xaTraceback (most recent call last):File "<stdin>", line 1, in <module>ImportError: numpy.core.multiarray failed to import
这个错误就是因为numpy版本低导致的,解决方法有以下两种:
1.执行pip install -U numpy,更新numpy库;
2.前往numpy下载页面下载,选择适合自己python版本的numpy包,我的Python版本是3.5,因此找下图中名称含cp35的安装包,下图红色框内,下载到anaconda包文件夹中,我的位置是D:\Program Files (x86)\Anaconda3\Lib\site-packages,进入到这个文件夹中,先按住shift键,在单击鼠标右键,弹出的菜单中选择“在此处打开PowerShell窗口”,输入以下代码即可安装:
pip install numpy-1.15.2+mkl-cp35-cp35m-win_amd64.whl
3 安装OpenCV
与numpy安装过程类似,从OpenCV下载页找到适合自己的版本下载到D:\Program Files (x86)\Anaconda3\Lib\site-packages文件夹中,shift+右键打开shell并键入
pip install opencv_python-3.4.3-cp35-cp35m-win_amd64.whl
当出现 “Successfully installed opencv-python-3.4.3”则说明安装成功,还可进一步做如下测试,如果没有出错并且执行了命令,则安装成功:
> python
>>> import cv2
>>> print(cv2.__version__)
>>> print(cv2.__file__)
4 解决PyCharm不能导入cv2的问题
从Pycharm--File--Settings--Project Interpreter中,我将两个python环境命名成“python 3.5”(py 3.5.2)和“python 3.6”(其实是py3.5.4,为了便于与上一个区分,anaconda自带安装)
出现了一下问题:
1.如果选择python 3.6(地址:Anaconda\python.exe),这个python是安装anaconda自带的,在import tensorflow是会出现找不到该模块的情况;
2.如果选择python 3.5(地址:Anaconda\envs\tensorflow\python.exe),这个python是tf中的,但是在用的时候import cv2会出现找不到cv2模块的情况。
既然是写tensorflow程序,当然要使用Anaconda\envs\tensorflow\python.exe地址下的python,因此就要解决不能导入cv2模块的问题。
经过多次测试+百度,看了很多博主的博客,最终找到了一款适合自己的,传送门
在pycharm下方终端窗口中(Terminal)【注意:一定是位于tensorflow中】,输入:
pip install opencv-python
虽然执行命令之后会提示已经安装过opencv-python,但是这一命令执行之后便不再出现“ImportError: No module named cv2”问题。
5 测试
import os
import tensorflow
import cv2
import numpy as np
img = cv2.imread("E:/person.jpg")
cv2.imshow("person", img)
cv2.waitKey(10000)
程序已经正确运行并显示,没有出现找不到cv2或者tensorflow的错误,说明安装成功。
参考:
2. pycharm导入cv2
更多推荐
所有评论(0)