ubuntu16.04安装opencv3.4.1及卸载,以及opencv与anaconda相关问题,import cv2,no module named cv2填坑指南

本文详细介绍了在Ubuntu系统中从源码编译安装OpenCV的过程,包括下载、配置环境、解决常见问题及测试安装是否成功的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.去官网下载opencv,在本教程中选用的时opencv3.4.1,其他版本的配置方法异曲同工。
下载,选择sources版本.

2.解压下载下来的zip包

unzip opencv-3.4.1.zip

3.进入到解压后的文件包中

4.安装依赖库和cmake ,如果提醒需要apt-get update,那就先sudo su进入root权限,再sudo apt-get update,然后在执行下面命令

sudo apt-get install cmake  
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev  
  •  

5.安装完cmake之后执行命令 ,创建编译文件夹

mkdir my_build_dir
cd my_build_dir

 

6.cmake一下

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
  •  

注意:如果已经在新的文件夹中编译,但是还会出现之前的报错,把cmakecache.txt删了再编译就可

期间可能会下载一个东西,等待一会儿就OK
这里写图片描述

7.执行命令,漫长的编译过程(用nproc命令查看自己的线程数,我的是12线程,用sudo make -j12会快很多喔)

sudo make
  •  

这里写图片描述

8.执行命令

sudo make install
  •  

这里写图片描述

9.sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到

sudo gedit /etc/ld.so.conf.d/opencv.conf 
  •  

执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加

/usr/local/lib  
  •  

这里写图片描述

10.执行如下命令使得刚才的配置路径生效

sudo ldconfig  
  •  

这个时候可能会提示错误如下图所示(上部分)
这里写图片描述
sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接
出现这个错误可能是由于系统BUG所致

只需要分别输入上面图下部分的四行命令就可解决
sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1

11.配置bash

sudo gedit /etc/bash.bashrc  
  •  

在最末尾添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  
  •  

保存,执行如下命令使得配置生效

source /etc/bash.bashrc  
  •  

更新

sudo updatedb  
  •  

12.至此所有的配置都已经完成
下面用一个小程序测试一下

找到
cd到opencv-3.4.1/samples/cpp/example_cmake目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行

cmake .
make
./opencv_example
  •  

即可看到打开了摄像头,在左上角有一个hello opencv
即表示配置成功

ubuntu下卸载opencv

 

在ubuntu下删除opencv的步骤如下:

1)进入opencv的源代码文件夹下的release(这是你在安装opencv时候自己命名的,cmake时候所在的目录)

2)依次执行下面的代码

  1. make uninstall

  2. cd ..

  3. sudo rm -r release

  4. sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv

  5. 或者说是cd /home/hy/opencv/build make uninstall//卸载掉配置路径中的文件 sudo rm -r build//删除build文件 //删除掉环境中有关的其余包 sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv* cd /home/hy chmod a+x opencv//给opencv权限 rm -r opencv//如果删除还是有文件权限不够,可以继续给相应文件权限,chomd a+x 文件名

opencv与anaconda相关问题,import cv2,no module named cv2填坑指南

ubuntu16.04系统自带python2和python3。直接命令行中,python,python3就可以使用并查看相应版本。

但我们一般也会装anaconda集成包,因为他包含了python以及相关安装包。使用起来比较方便。

但是从源码安装编译opencv时却因为anaconda这个包的存在埋了不少坑。

本人之前先在系统自带python的基础上又安装了anaconda3,并将anaconda3中的python3.6加入到系统路径中,这样系统就会一直调用anaconda3中python3.6.

然后再从源码安装编译opencv3.4.0,这时候会出现一个问题。编译时要生成python可以调用的cv2.so,需要调用python编译器,但此时opencv源码中的cmakelist懵了,不知道用系统自带还是anaconda中的python,干脆就放弃了编译生成这个python接口可调用的cv2.so文件。所以此时无论在系统python环境下还是anaconda python环境下都不能import cv2.

当然有些人可能为了继续在anaconda中import cv2投机取巧用conda安装阉割版的opencv-python,但请原谅我是个完美主义者,不想用这种方式糊弄我自己,我会寝食难安0.0,哈哈,just for fun!(sorry!)

想要用完整版的opencv,有两种解决方式:

一种是修改opencv的cmake编译选项,指明编译时使用的python编译器为anaconda python。

 

cmake -D WITH_IPP=OFF -D PYTHON_DEFAULT_EXECUTABLE=~/anaconda3/bin/python3 -D BUILD_opencv_python3=ON -D BUILD_opencv_python2=OFF -D PYTHON3_EXCUTABLE=~/anaconda3/bin/python3 -D PYTHON3_INCLUDE_DIR=~/anaconda3/include/python3.6m -D PYTHON3_LIBRARY=~/anaconda3/lib/libpython3.6m.so.1.0 -D PYTHON_NUMPY_PATH=~/anaconda3/lib/python3.6/site-packages ..

下载opencv并解压,在解压后的文件夹中:


 
  1. mkdir build #新建一个build文件夹,编译的工程都在这个文件夹里

  2. cd build

  3. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON_EXECUTABLE=/path/to/anaconda3/bin/python3 -DPYTHON_INCLUDE_DIR=/path/to/anaconda3/include/python3.6m -DPYTHON_LIBRARY=/path/to/anaconda3/lib/libpython3.6m.so -DPYTHON_NUMPY_INCLUDE_DIRS=/path/to/anaconda3/lib/python3.6/site-packages/numpy/core/include ..

     注意把PYTHON_EXECUTABLE,PYTHON_INCLUDE_DIR,PYTHON_LIBRARY,PYTHON_NUMPY_INCLUDE_DIRS中的目录换成自己安装的anaconda的目录。

第二种是将annaconda系统路径屏蔽(当然最好是一开始就先装opencv,这样系统自动用系统自带python进行编译,等生成了cv2.so再安装anaconda)。

使用系统自带的python2和python3编译分别会生成cv2.so和cv2.cpython-35m-x86_64-linux-gnu.so这就是我们分别在anaconda2和anaconda3中import的cv2模块。

因为我的是anaconda3,所以首先进入到~/opencv-3.4.0/my_build_dir/lib/python3目录下将其中的cv2.cpython-35m-x86_64-linux-gnu.so复制到anaconda下。(如果是anaconda2就直接将cv2.so复制进去就可以了)

sudo cp cv2.cpython-35m-x86_64-linux-gnu.so /home/zya/anaconda3/lib/python3.6/site-packages/

然后改名sudo mv cv2.cpython-35m-x86_64-linux-gnu.so cv2.so

当然你不愿意复制也可以使用建立软链接的方式

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

然后问题完美解决了!

 

<think>我们正在讨论如何使用conda安装特定版本的OpenCV。根据提供的引用,我们可以总结出几种方法:1.使用conda直接安装(可能受限于conda仓库中的可用版本)2.使用pip在conda虚拟环境中安装(pip可以安装更多版本的opencv-python包)3.从源代码编译安装指定版本的OpenCV(最灵活但最复杂)由于用户希望安装特定版本,我们首先尝试使用conda直接安装,如果conda仓库中没有所需版本,则使用pip安装。如果上述方法都不行,再考虑从源码编译。###方法1:使用conda安装指定版本的OpenCV在conda环境中,可以使用以下命令:```bashcondainstallopencv=<version>```例如,安装4.5.5版本:```bashcondainstallopencv=4.5.5```但需要注意的是,conda仓库中的OpenCV版本可能有限,如果找不到指定版本,可以尝试使用pip安装。###方法2:使用pip安装指定版本的OpenCV在conda虚拟环境中,我们可以使用pip来安装opencv-contrib-python或opencv-python包,并指定版本。例如:```bashpipinstallopencv-contrib-python==4.5.5.62```或者```bashpipinstallopencv-python==4.5.5.62```注意:使用pip安装时,需要确保当前处于激活的conda虚拟环境中。另外,opencv-python和opencv-contrib-python的区别在于后者包含了一些额外的模块。###方法3:从源代码编译安装(当需要特定配置或特定版本时)如果上述方法都无法满足(比如需要非常特定的版本或者自定义编译选项),则可以选择从源代码编译安装。步骤大致如下:1.下载所需版本的OpenCV源代码(例如从GitHubrelease页面下载)2.创建并激活conda虚拟环境3.安装必要的依赖(如cmake、编译器、依赖库等)4.使用cmake配置构建选项,指定安装路径为conda虚拟环境的路径(关键步骤)5.编译并安装例如,参考引用[4]中的步骤:```bash#假设已经激活了名为myenv的conda环境condaactivatemyenv#下载并解压源代码wget-Oopencv.ziphttps://github.com/opencv/opencv/archive/3.4.6.zipunzipopencv.zipcdopencv-3.4.6#创建build目录并进入mkdirbuild&&cdbuild#使用cmake配置,注意替换以下路径为你的conda环境路径cmake-DCMAKE_BUILD_TYPE=RELEASE\-DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX\-DPYTHON_EXECUTABLE=$(whichpython)\..#其他选项根据需求添加#编译和安装make-j8makeinstall```这里,`CMAKE_INSTALL_PREFIX`设置为`$CONDA_PREFIX`(即当前激活的conda环境路径),`PYTHON_EXECUTABLE`设置为当前环境中的python解释器。###注意事项-使用conda或pip安装二进制包是最简单的方法,但可能不支持某些功能(如GPU加速)。如果需要这些功能,可能需要从源码编译。-在同一个环境中,不要混合使用conda和pip安装OpenCV,以免造成冲突。如果使用pip安装,最好在干净的conda环境中进行。-安装完成后,可以在Python中测试:`importcv2;print(cv2.__version__)`###相关问题1.如何检查conda仓库中可用的OpenCV版本?2.使用pip安装OpenCV时,如何选择opencv-python和opencv-contrib-python?3.从源代码编译OpenCV时,如何配置以支持CUDA?4.在conda环境中混合使用conda和pip安装包有什么风险?</think>### 如何通过 Conda 安装指定版本的 OpenCV 在 Conda 环境中安装指定版本的 OpenCV 主要有三种方法,根据需求选择合适方案: #### **方法1:使用 Conda 直接安装(推荐)** ```bash # 创建并激活虚拟环境(可选) conda create -n myenv python=3.9 conda activate myenv # 安装指定版本 OpenCV conda install -c conda-forge opencv=4.5.5 # 替换所需版本号 ``` - ✅ **优点**:自动解决依赖关系,兼容性好 - ❗ **注意**:版本需在 Conda 仓库中存在(可通过 `conda search opencv -c conda-forge` 查询可用版本) --- #### **方法2:通过 Pip 在 Conda 环境中安装** 当 Conda 仓库无指定版本时: ```bash conda activate myenv pip install opencv-python==4.5.5.62 # 精确版本号 # 或安装完整版 pip install opencv-contrib-python==4.5.5.62 ``` - ✅ **优点**:版本选择更灵活 - ⚠️ **风险**:需确保依赖库兼容(建议先运行 `conda install numpy scipy`) --- #### **方法3:从源码编译安装(高级需求)** 适用于需要自定义功能(如 CUDA 支持)的场景: ```bash conda activate myenv conda install -c conda-forge cmake compilers # 下载源码 git clone --branch 3.4.6 https://github.com/opencv/opencv.git # 替换版本号 cd opencv && mkdir build && cd build # 关键配置(替换路径) cmake \ -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \ # 安装到当前环境 -DPYTHON3_EXECUTABLE=$(which python) \ -DWITH_CUDA=ON \ # 按需开启选项 .. make -j8 && make install ``` > **配置说明**: > - `CMAKE_INSTALL_PREFIX`:必须设为 Conda 环境路径(`echo $CONDA_PREFIX` 查看) > - `PYTHON3_EXECUTABLE`:指向环境内的 Python 解释器[^3][^4] --- ### **验证安装** ```python import cv2 print(cv2.__version__) # 应显示安装版本 ``` ### **常见问题解决** 1. **导入错误**:检查环境是否激活,或尝试 `conda install numpy` 2. **显示问题**:安装 GUI 依赖 `conda install -c conda-forge pyqt` 3. **版本冲突**:新建纯净环境重新安装 > 提示:对于生产环境,**优先选择方法1**;需要最新特性时考虑方法2;仅当需要深度定制时使用方法3[^1][^2]。 --- ### 相关问题 1. Conda 和 Pip 混合安装 OpenCV 会有哪些兼容性问题2. 如何为 OpenCV 启用 CUDA 加速支持? 3. 在 Windows 系统上通过 Conda 安装 OpenCV 有哪些特殊注意事项? 4. 如何彻底卸载 Conda 环境中的 OpenCV 并重装指定版本?
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值