python37安装opencv41_Ubuntu16.04、Python3.6下安装opencv4遇到的问题

1.安装opencv

在网上搜索Ubuntu16.04下安装opencv4想必一定搜到大把的编译源码安装opencv的教程,其实安装opencv只需一句命令:

pip3 install opencv-python

说实在我着实没想明白为什么那么多人要编译源码安装呢。。。

2.python3.6中导入opencv库

终端敲入python3.6后输入

import cv2

这时报了个错:importError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so

原因是我在之前安装了ROS,ROS默认python版本是2.7,这个问题是由ROS添加/opt/ros/kinetic/lib/python2.7/dist-packages到python路径引起的

解决办法:

打开.bashrc文件

gedit ~/.bashrc

在末尾将这句注释掉

source /opt/ros/kinetic/setup.bash

使该环境变量在当前终端生效生效

source ~/.bashrc

这样就可以正确使用python3的opencv包,可以取消注释source /opt/ros/kinetic/setup.bash来使用ROS。

但是,这确实意味着无法在同一环境中使用ROS和python3

不过目前ROS1只支持python2,应该在ROS2.0才会支持到python3

导入opencv后查看opencv版本:

print(cv2.__version__)

输出:4.2.0

3.在Python3.6虚拟环境中import cv2及遇到的问题

首先在虚拟环境中导入opencv需要链接到opencv的路径,执行命令查找cv2.cpython-36m-x86_64-linux-gnu.so的位置:

sudo find / -name cv2.cpython-36m-x86_64-linux-gnu.so

之后将虚拟环境中opencv链接到上边文件的路径比如:

cd .virtualenv/py36env/lib/python3.6/site-packages

sudo ln -s ~/.local/lib/python3.6/site-packages/cv2/cv2.cpython-36m-x86_64-linux-gnu.so cv2.so

或者直接将上边的文件复制到虚拟环境下的包路径(site-packages)也行

在执行完以上步骤后进入虚拟环境启动python3.6后import cv2遇到以下问题

ModuleNotFoundError: No module named 'cv2'

原因有很多 以下几种方法可能可以解决:

(1)安装opencv的contrib库

pip install opencv-contrib-python

(2)安装python-opencv

sudo apt-get install python-opencv

(3)将cv2.so复制到系统默认安装python的路径下比如

/usr/local/lib/python3.6/dist-packages/cv2/cv2.so

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值