【谈谈那些跳过的坑】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

注:

  1. 由于我的Python环境是通过Anaconda安装的,使用Anaconda安装Python的默认版本是3.6,又因为TensorFlow最高支持py3.5,因此将python3.6换成了python3.5.4,安装tensorflow后tensorflow中的python.exe版本是3.5.2,因此pc中存在两个python环境。
  2. 安装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的错误,说明安装成功。

参考:

1. python 3.6安装opencv库详细教程

2. pycharm导入cv2

3. python opencv 安装及使用

猜你喜欢

转载自blog.csdn.net/qq_37935516/article/details/83006285