项目环境配置:Ubuntu16.04安装显卡驱动、CUDA、CUDNN、为python3编译带cuda等的opencv、pytorch

注:笔记本带有显卡时,在Ubuntu系统下需要安装显卡驱动、CUDA、CUDNN、tensorflow-gpu、pytorch-gpu、编译opencv等这几者需要版本等要求对应。(opencv的编译选项中的CUDA需要匹配安装的cuda的算力,pytorch需根据对应的CUDA选择下载不同的下载命令)

一、用U盘安装ubuntu16.04、16.06系统

根据电脑位数下载ubuntu16.04(可以安装ubuntu18.04,因为其python3的默认版本为python3.6,但是可能运行雷达程序会出问题,因为gcc版本可能过高等原因):(梓豪说16.06装起来很舒服,少了很多bug,装好anaconda就可以使用navigator!!!)

第二次在实验室电脑R720装的是ubuntu18.04(1060GPU),18.04最好使用系统设置里面来安装显卡驱动,因为没有lightdm

http://releases.ubuntu.com/16.04/

一般选择国内的源里面的https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/16.04/

ubuntu下制作ubuntu16.04的系统启动盘(不需要别的软件,直接格式化优盘,):

https://jingyan.baidu.com/article/5d6edee2c65c2a99eadeecd4.html

# 格式化优盘后
sudo fdisk -l
# 会显示格式化的盘符,下面的/dev/sdc2需要替换成格式化的优盘的盘符
mkfs -t ntfs /dev/sdc2
# 从dash面板搜索qi,可以看到启动盘创建器,点击后选择iso镜像和优盘,等待完成即可

windows下制作ubuntu16.04的优盘启动盘:软件名: Universal-USB-Installer

 

二、修改用户密码

sudo su
sudo passwd [username]

三、安装显卡驱动

不推荐如下方法(有人没安装成功):
还有一种方法是不先安装显卡驱动,先去cuda官网下载所需的cuda,系统会自动安装最新且最合适的显卡驱动,参考链接:https://blog.csdn.net/qq997843911/article/details/85039021

刚开机可能会出现分辨率不对的问题,界面显示不全,这个问题安装完显卡驱动就好了

有四种方法,第一是下载驱动安装(最靠谱,因为为了对应后面的cuda、cudnn等版本),第二种是通过系统的附加驱动安装,第三种是通过官方的ppa源进行安装,第四种是命令行查询并让电脑自己选择合适的显卡驱动安装。

方法一:下载驱动安装

安装显卡驱动链接:https://blog.csdn.net/weixin_41864878/article/details/79621210

1、在官网选择自己电脑显卡对应的显卡驱动:https://www.geforce.cn/drivers

语言不知道选Chinese(Simplified)还是选English,个人觉得应该选择English

搜索的结果会很多,需要根据要安装的cuda版本(选runfile(local))确定显卡驱动的版本,或者在网址:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html查看显卡驱动与cuda的对应关系。

例如选择cuda10.0版本,看到Run `sudo sh cuda_10.0.130_410.48_linux.run`,则知道需要安装410.48或以上版本的显卡驱动(显卡驱动向下兼容)

# 显卡驱动网址
https://www.geforce.cn/drivers 
# CUDA网址
https://developer.nvidia.com/cuda-toolkit-archive
# CUDNN网址
https://developer.nvidia.com/rdp/cudnn-archive

2、打开终端,首先卸载一下之前安装的(之前没有装过的就不用管了,直接从下一步开始)

$ sudo apt-get --purge remove nvidia-*

3、打开blacklist:

$ sudo gedit /etc/modprobe.d/blacklist.conf
# 在最后添加几行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
# 然后保存退出。
#这个地方容易出现的问题是明明把nouveau添加到了blacklist里,安装驱动的时候还是会出现这个错误,后面会讲解决办法。

4、 接下来是针对nouveau的双重保险:

# 1、在终端运行
$ lsmod | grep nouveau
# 2、如果没有输出,可以忽略下面这一段,直接开始安装1080的驱动,如果仍有输出,终端输入:
$ sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
# 3、直接写入下面命令,blacklist nouveau 是将Ubuntu自带的显卡驱动加入黑名单
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
# 保存关闭
# 4、再尝试,使禁用 nouveau 真正生效终端输入 : sudo update-initramfs -u
$ sudo update-initramfs -u
$ lsmod | grep nouveau
#如果这样还有输出,reboot一次
切记不要物理重启!!!

如果物理重启报错:"Welcome to emergency mode"等无法开机
则按照指示,执行:
$ journalctl -xb
然后在输出的文件中查找受损的分区
/fsck fail
可以看到显示为红色的UUID,然后执行下面命令看知道对应的盘符
$ sudo blkid
# 可以通过UUID得到对应的盘符,然后执行fsck校验并修复文件
$ fsck -y /dev/sda11  #将/dev/sda11改为自己对应的盘符
$ sudo reboot

5、开始安装显卡驱动 

# 注:记住你的驱动的.run文件的下载路径和完整文件名(如果你的版本号和我的不同,请自行修改),

# 1、按Ctrl+Alt+F1进入命令界面(切换tty1控制台),登入,需要结束x-window的服务,否则驱动将无法正常安装
$ sudo /etc/init.d/lightdm stop
# 2、进入文本模式
$ sudo init 3
# 3、进入.run文件的下载路径,由于我的文件下载下来没有运行权限,先用chmod手动设置一下
$ chmod a+x NVIDIA-Linux-x86_64-410.78.run
$ sudo ./NVIDIA-Linux-x86_64-410.78.run -no-x-check -no-nouveau-check -no-opengl-files 
# 上面紧接着这句是关闭x server,nouveau和不下载opengl文件(我也不太明白是个啥)之后就会开始安装程序,complete后检查一下
# 4、重新启动X-Window:sudo service lightdm start,然后Ctrl+Alt+F7进入图形界面
$ sudo service lightdm start
# 5、检查是否安装成功
$ nvidia-smi
# 6、出现大框框就ok,之后回到图像界面
$ sudo /etc/init.d/lightdm start

方法二: 通过系统的附加驱动进行安装

系统设置->软件更新->附加驱动->选择nvidia最新驱动(361)->应用更改,重启后生效

方法三: 通过官方的ppa源进行安装

参考链接:https://blog.csdn.net/chenyuping333/article/details/81705528

# 1、快捷键ctrl+alt+T打开命令终端,加入官方ppa源
$ sudo add-apt-repository ppa:graphics-drivers/ppa
# 2、需要输入密码并按enter键确认。之后刷新软件库并安装最新驱动
$ sudo apt-get update
$ sudo apt-get install nvidia-367nvidia-settings nvidia-prime
# 3、安装完成后通过下面命令查看是否安装成功
$ nvidia-settings
# 4、注意安装完成后要重启,有如下效果则安装完成,否则就说明安装有问题,尝试关闭UEFI保护试试。
# 安装了nvidia367后循环登录出现问题,解决参考http://www.jianshu.com/p/34236a9c4a2f 

 双显卡的电脑,搜索栏输入nvidia-settings,打开搜索的结果,双显卡的同学设置->详细信息中显卡默认为Intel集成显卡

 

方法四: 命令行进行Nvidia显卡配置

参考链接:https://blog.csdn.net/qq_37935670/article/details/80377196

# 1、terminal查询集成显卡和独立显卡
$ lspci | grep -i vga
$ lspci | grep -i 3d
# 2、开机时进入BIOS,)禁用自己的secure boot,也就是设置为disable,具体的进入自己bios中找一下,一般在security或者boot里面
# 3、进入系统后,运行下面两行命令,让电脑自己安装合适的显卡驱动
$ ubuntu-drivers devices
$ sudo ubuntu-drivers autoinstall
# 4、重新启动,然后在应用中找到nvidia setting,查看显卡驱动是否安装成功

四、禁止系统自动更新及内核更新

此时系统的显示会恢复正常

https://blog.csdn.net/ezhchai/article/details/80525207

1、禁止系统自动更新

方法一:图形用户界面

方法二、 修改系统配置文件

# 1、打开指定文件 
$ sudo gedit /etc/apt/apt.conf.d/10periodic 
# 2、将文件中所有选项数值置为0
# 3、保存并退出

2、关闭内核更新,避免内核自动升级导致的问题

法一:最粗暴的办法上面的四.1、就是在软件与更新中设置never

法二:参考链接:https://blog.csdn.net/weixin_40522162/article/details/80302735

法二:

# dpkg -l是列出所有安装的软件,第一行是ii 第一个i表示desired status为安装, 第二个i表示current status. 
# **linux-image** 是linux内核的名称

$ sudo dpkg --get-selections |grep linux-image #查看所有已安装及未安装内核的信息
$ uname -a     #查看正在使用的内核   
$ sudo apt remove linux-image-4.15.0-39-generic    #删除当前内核
#禁止内核更新,需要时间检验 例如:$ sudo apt-mark hold linux-image-4.15.0-38-generic 
$ sudo apt-mark hold linux-image-x.xx.x-xx-generic
$ sudo apt-mark hold linux-image-extra-x.xx.x-xx-generic
# 如果需要恢复原来的设定的话即允许更新内核,执行如下命令即可:
$ sudo apt-mark unhold linux-image-x.xx.x-xx-generic
$ sudo apt-mark unhold linux-image-extra-x.xx.x-xx-generic

注: 

可能会出现重启进不去的情况,有可能是系统自己升级了内核,需要到Advance中选择合适的内核进去

如何删除linux中的旧内核:https://www.linuxidc.com/Linux/2015-09/123227.htm

五、更改ubuntu16.04的源

只有Nvidia的显卡才可以用CUDA和CUDNN

$ sudo gedit /etc/apt/sources.list
# 保存并退出
# 注意千万别 upgrade
$ sudo apt-get update
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

六、安装cuda及cudnn

在运行不同的代码程序时可能需要的libcublas.so.8.0\9.0\10.0,这种情况可以同时安装多版本的cuda,可以百度一下,安装第一个cuda,软链接时要选y,别的不能选y,要选n,然后每次切换时修改软链接命令即可!!!

参考:https://blog.csdn.net/weixin_41864878/article/details/79621210

1、上面的三已经根据cuda版本安装好了显卡驱动。现在开始安装cuda,一般下载runfiles(local)

网址中CUDA10.0的安装要求如下:红色框表示要求的显卡驱动最低版本是410.48,显卡驱动是向下兼容的。

有一个关键是会让你选择是否安装Graphics Driver for Linux-x86_64:XXXX版本,这个地方必须选择no!否则会覆盖之前的驱动

# 1、cuda下载网址,选择历史版本click legacy releases
https://developer.nvidia.com/cuda-downloads
# 2、在下载的文件夹打开terminal,输入对应的:
$ chmod a+x cuda_9.0.176_384.81_linux.run
$ sudo ./cuda_9.0.176_384.81_linux.run
# 3、之后就会开始安装,按q退出说明文件,然后按指令输入就行,一般是yes
# 4、有一个关键是会让你选择是否安装Graphics Driver for Linux-x86_64:XXXX版本,
# 这个地方必须选择no!否则会覆盖之前的驱动
# 5、安装完毕之后,声明环境变量,终端输入:,/etc/profile中设定的变量(全局)的可以作用于任何用户,有些教程是$ sudo gedit ~/.bashrc
#而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
$ sudo gedit /etc/profile
# 6、在打开的文件最后加上:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 10.0的话加上如下命令
export CUDA_HOME=/usr/local/cuda-10.0 
export PATH=$PATH:$CUDA_HOME/bin:${PATH} 
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
# 7、保存并退出
$ source /etc/profile
# 8、验证显卡驱动版本
$ cat /proc/driver/nvidia/version
# 9、验证CUDA版本
$ nvcc -V
# 10、测试cuda的样例
$ cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
$ sudo make
$ ./deviceQuery

2、安装cudnn

(1)下载cudnn有两种方法(别选版本太高的),法一需要登录,现在可以用微信登录了,优势是可以直接点击下载;法二不需要登录,但是不能直接点击,需要右击save...或者复制链接,用迅雷等工具下载,但是下载的不是正常的压缩包,所以不推荐法二。

# 法一:对应cuda10.0的cudnn7.4.2网址(需要登陆,现在可以微信扫码登录):
https://developer.nvidia.com/rdp/cudnn-archive
# 法二:绕过登录,下面是cudnn各个版本的下载网站,不能直接点,需要右击复制链接,或者存储为,选择对应的cuda的cudnn版本下载!!!
https://developer.nvidia.com/rdp/cudnn-archive#a-collapse51b

切记选择 for linux(相比于 for ubuntu 16.04,这个是最全的)!!!

注:适合某个CUDA版本的会有多个cudnn版本都可以,但是运行的时候可能出问题,所以一般不下载太新的cudnn版本

别人的教程有遇到过问题:

# 最开始下载了7.1.1 for CUDA9.0,跑程序的时候出现了
Loaded runtime CuDNN library: 7101 (compatibility version 7100) but source was compiled with 7040 
(compatibility version 7000).  If using a binary install, upgrade your CuDNN library to match. 
If building from sources, make sure the library loaded at runtime matches a compatible version 
specified during compile configuration.

#查阅了资料意识到是下载的cuDNN版本过高了,于是又转头去下载7.0.4版本,来来回回卸载安装弄了好几遍,心态爆炸了很多次。
话说回来,下载的是这个,得到的压缩包:cudnn-9.0-linux-x64-v7.tgz

(2)安装cudnn

# 1、如果之前安装的版本,先卸载之前安装的版本,没装过cudnn的可以直接进行下一步
$ sudo rm -rf /usr/local/cuda/include/cudnn.h
$ sudo rm -rf /usr/local/cuda/lib64/libcudnn*
# 2、在下载路径解压文件,复制到本地路径,这里解压出来的文件名比较重要,后面会要对照着看
$ tar -zxvf cudnn-9.0-linux-x64-v7.tgz
cuda/include/cudnn.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.7
cuda/lib64/libcudnn.so.7.0.4
cuda/lib64/libcudnn_static.a
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
# 3、cd到本地cuda路径,创建软连接,终端输入,这里的文件名就参照之前解压出来的文件名对照着写,就算和我下的不是一个版本也能搞定
$ cd /usr/local/cuda/lib64
$ sudo chmod +r libcudnn.so.7.0.4  
$ sudo ln -sf libcudnn.so.7.0.4 libcudnn.so.7  
$ sudo ln -sf libcudnn.so.7 libcudnn.so  
$ sudo ldconfig 
# 4、验证是否安装成功:在本地cuda路径检测一下
$ ll
# 5、出现cuDNN对应的版本号就证明安装成功啦,如下
lrwxrwxrwx  1 root root        13 3月  19 16:02 libcudnn.so -> libcudnn.so.7*
lrwxrwxrwx  1 root root        17 3月  19 16:02 libcudnn.so.7 -> libcudnn.so.7.0.4*
-rwxr-xr-x  1 root root 287641664 3月  19 16:00 libcudnn.so.7.0.4*

七、安装Anaconda3(至此步结束,如果无法成功安装anaconda则进行八)

 anaconda在每次发布新版本的时候都会给python3和python2都发布一个包,版本号是一样的。

直接下载自带python3.6的anaconda3-5.2.0即可,然后在base环境(有的叫root环境)里直接pip安装模块或者使用anaconda-navigator界面安装各种模块就可以了.

Anaconda与python的对应关系:https://blog.csdn.net/yuejisuo1948/article/details/81043823

各种版本的Anaconda网址:https://repo.anaconda.com/archive/,或者进入anaconda官网,点击左下角的Documentation框里面的read more,点击Anaconda Distribution下面的Previous versions下面的archive即可看到所有的历史版本

一、安装Anaconda3
# 1、下载Anaconda3
# 2、进入到下载文件夹,开始安装anaconda3,根据提示,一路yes
$ cd Downloads/
$ bash Anaconda3-5.2.0-Linux-x86_64.sh
# 3、验证是否安装anaconda成功,下面命令二选一
$ anaconda -V
$ conda --version
# 4、如果未找到命令,说明anaconda3没有将路径配置到系统环境变量中
$ echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc
# 4、或者设置Anaconda环境变量
sudo gedit ~/.bashrc
在其最后一行添加命令:
export PATH="/home/neousys/anaconda3/bin:$PATH"
使其生效
source ~/.bashrc
# 5、再次验证是否成功安装anaconda,还不可以的话就重启一下,shutdown -r now
$ anaconda -V
# 6、为了避免可能发生的错误, 我们可以在命令行输入:conda upgrade --all
先把所有工具包进行升级。
$ conda upgrade --all
# 进入安装的环境env——base或创建的py36
$ source activate base/py36

二、子目录及主目录文件夹全部更改权限:
chmod -R 700 Document/

三、安装并打开Anaconda-navigator界面,注意点击Lock to Launcher
# 法一
$ source ~/anaconda3/bin/activate root
$ anaconda-navigator
# 法二
$ conda install -c anaconda anaconda-navigator​
$ anaconda-navigator

四、安装环境
# 1、安装pytorch,需要去pytorch选择选项得到对应的conda安装命令
# 2、安装tensorflow-gpu,先检查pip是否是anaconda的pip:pip -V 
# 如果想装caffe的话,必须先装caffe再装tensorflow,参考https://cuijiahua.com/blog/2017/12/dl_1.html
$ pip -V
# 然后安装tensorflow-gpu
pip install tensorflow-gpu
# 3、安装opencv,参考https://blog.csdn.net/qq_24032231/article/details/84062936
#下面带--c是自编译安装的意思,千万别直接conda install opecv3,因为那是安装别人编译好的
conda install --channel https://conda.anaconda.org/menpo opencv3 
# 如果之前在anaconda下安装的失败了,卸载参考https://blog.csdn.net/qq_24032231/article/details/84062936
# 查看opencv是否装好
anaconda show menpo/opencv3
或者:
import cv2
cv2.__version__
# 如果运行cv2,报以下错误
ImportError: libSM.so.6: cannot open shared object file: No such file or directory
ImportError: libXrender.so.1: cannot open shared object file: No such file or directory
ImportError: libXext.so.6: cannot open shared object file: No such file or directory
# 解决方案:安装对应的软件依赖包
apt-get install libsm6
apt-get install libxrender1
apt-get install libxext-dev

五、通过anaconda来装
###下载requirements.txt中的所有包
pip install -r requirements.txt
https://pytorch.org/get-started/locally/

# 但是当网速不好时,直接按照上面网站下载会特别慢,所以参考网址
# https://blog.csdn.net/yuanzhoulvpi/article/details/86742729
# 需要进行下面操作
找到清华镜像源 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/中的pytorch中那行
输入命令行中,表示将该源添加到下载寻找链接,然后再执行第一行网站中的命令,这样pytorch下载会快很多


https://pytorch.org/get-started/previous-versions/
https://www.jianshu.com/p/3d56adca6829

 

 

八、安装python3.6及设置优先级

ubuntu的python3.5千万不能卸载,因为系统默认带的 Python2, Python3 已经和系统高度整合,所以不能随意卸载,否则可能导致系统或某些组件不可用,会导致重启不了等问题。

https://www.cnblogs.com/eczhou/p/10245331.html

https://www.cnblogs.com/yjlch1016/p/8641910.html

注:按Ctrl+D退出python命令行,或者输入exit()

# 1、terminal输入命令
$ sudo add-apt-repository ppa:jonathonf/python-3.6
# 2、按Enter确认,并输入:
sudo apt-get update
sudo apt-get install python3.6
# 3、按y确认
# 4、调整Python3的优先级,使得3.6优先级较高
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
# 5、更改默认值,python默认为Python2,现在修改为Python3
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
# 6、更新pip
$ sudo apt-get install python3-pip
# 7、检查
python3 -V
# 8、如果要切换到Python2,执行:
$ sudo update-alternatives --config python

九、为python3.6编译带cuda的opencv(通过编译选项,也可以为C、C++、Java编译,也可以编译cuda需知道算力)

1、当在conda环境下通过conda install opencv时,安装的又是阉割版的opencv,有的模块根本没法用.后来google后,了解到这是涉及到opencv作者的版权等种种问题,所以把其他的函数模块封装到了contrib中.
这样就又带来另一个问题,在安装了阉割版opencv的基础上再安装contrib容易导致很复杂的问题.从源码编译opencv又会默认编译到系统环境下的python2.7中.这样在系统环境下工作和在conda环境下工作进行切换,又得通过nano ~/.bashrc更改环境变量,很麻烦.

链接:https://www.jianshu.com/p/c42fc8702f2b

2、pip可以安装的opencv-python安装并不依赖opencv,只是封装了opencv的Python API,一般情况下也够用。但是如果准备安装完整版本的opencv,这里比较建议将opencv-python卸载,以免之后产生一些不必要的报错

3、之前已经安装了OpenCV3.4.3,但是这个版本好像和CUDA9.0不能兼容,导致cuda的模块无法编译,所以这里先把它卸载掉,然后安装opencv3.4.0

https://www.cnblogs.com/arkenstone/p/6490017.html

https://blog.csdn.net/heiheiya/article/details/82590601

https://www.cnblogs.com/beihaidao/p/6773595.html?utm_source=itdadao&utm_medium=referral

装之前必须看一下这个网址:https://blog.csdn.net/dulingwen/article/details/90607767

因为编译的时候选择编译了python接口,所以不需要pip3 install opencv-python或者在anaconda中安装opencv,只需要将~/opencv/build/lib/python3/cv2.cpython-37m-x86_64-linux-gnu.so复~/anaconda3/lib/python3.7/site-packages/文件夹中

如果出现no module named cv2,那就把cv2.so拷到anaconda/lib/python2.7/site-packages下

1 先用which python找到python的安装目录(每个人的不同,可以自行更改),只需要把opencv编译的cv2.so和原始的cv.py拷贝到python安装目录下的site-packages路径下面即可。

例如:

cp opencv_dir/build/lib/cv2.so ENV/lib/python2.7/site-packages/
cp opencv_dir/modules/python/src2/cv.py ENV/lib/python2.7/site-packages/

有的也是复制到这,因为python安装的位置不同

/usr/local/lib/python2.7/site-packages

2 测试python例子

在opencv_dir/samples/python2可以找到python的测试用例,同理可以运行那些绿色的可执行文件,例如:

./find_obj.py

 

安装Anaconda3后,如果使用python和python3,那么默认变为Anaconda3的python

这时如果想切换默认python为原始独立python, 
1. sudo gedit ~/.bashrc 
2. 添加 alias python3=’/usr/bin/python3.5‘
3. source ~/.bashrc

1、github网站上下载3.4.0版本的opencv和opencv_contrib包

最开始安装的3.4.3版本,但是不兼容。卸载已经安装的opencv参考: https://blog.csdn.net/heiheiya/article/details/82590601

https://github.com/opencv

卸载装的不对的opencv
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 /usr
--------------------- 
作者:haoqimao_hard 
来源:CSDN 
原文:https://blog.csdn.net/haoqimao_hard/article/details/82049565 
版权声明:本文为博主原创文章,转载请附上博文链接!

点击releases,选择3.4.0版本的tar.gz,解压文件

# 1、下载,除了从github上直接下载,也可以git clone或者
$ wget https://github.com/opencv/opencv/archive/3.4.0.zip 
$ wget https://github.com/opencv/opencv_contrib/archive/3.4.0.zip
# 2、解压压缩包
$ tar -zxvf opencv...tar.gz
# 或者
$ unzip opencv-3.4.0.zip
# 将contrib解压到opencv文件夹下
$ unzip opencv_contrib.3.4.0.zip -d opencv-3.4.0/

2、安装依赖

$ sudo apt-get install build-essential
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev qt5-default
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 处理图像所需的包
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev # 2、3和上面重复了
$ sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
$ sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
$ sudo apt-get install ffmpeg

3、编译opencv并配置环境变量(配路径参考:https://blog.csdn.net/heiheiya/article/details/82497211)

# 1、进入opencv目录
$ cd opencv-3.2.0
$ mkdir build
$ cd build
# 2、编译选项的设置
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/neousys/Downloads/huanjing/opencv_contrib-3.4.0/modules -D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so -D CUDA_ARCH_BIN=7.5 -D CUDA_ARCH_PTX="" -D WITH_CUDA=ON -D WITH_TBB=ON -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -D BUILD_opencv_python3=ON -D BUILD_opencv_python2=OFF -D PYTHON3_EXCUTABLE=/usr/bin/python3 -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D WITH_NVCUVID=ON -D BUILD_opencv_cudacodec=OFF ..

构建版本、安装目录、contrib文件目录(根据自己的位置修改)、CUDA库、CUDA算力(需要去https://developer.nvidia.com/cuda-gpus 网站点击自己的显卡类型查看)
-D INSTALL_C_EXAMPLES=OFF \(编译选项)
-D INSTALL_PYTHON_EXAMPLES=ON \(编译选项)
-D BUILD_EXAMPLES=ON \(编译选项)
-D PYTHON3_EXCUTABLE=/usr/bin/python3 \(文件路径)
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.5m \(文件路径) ???
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so \(文件路径)
-D PYTHON_NUMPY_PATH=/usr/local/lib/python3.5/dist-packages ..(文件路径)

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D PYTHON3_EXECUTABLE=/usr/bin/python3 \
-D PYTHON_INCLUDE_DIR=/usr/include/python3.5 \
-D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.5/dist-packages/numpy/core/include \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D PYTHON_EXECUTABLE=/usr/lib/python3 \
-D BUILD_EXAMPLES=ON ..
--------------------- 
作者:lch_vision 
来源:CSDN 
原文:https://blog.csdn.net/lch_vison/article/details/79112693 
版权声明:本文为博主原创文章,转载请附上博文链接!

下载不下来的两个文件可以参考https://blog.csdn.net/csdn330/article/details/86747867解决
# 2、anaconda环境的编译可以参考 https://www.cnblogs.com/arkenstone/p/6490017.html
# 3、输出内核个数
$ nproc  
# 4、make 需要注意,如果电脑是8核,最好不要make -j8,很容易超出内存编译出错,最好设置成make -j4或者make -j2。
$ make -j4
# 5、install
$ sudo make install
# 6、配置环境变量,添加路径
$ sudo vim /etc/ld.so.conf.d/opencv.conf
# 在末尾添加如下内容:
/usr/local/lib
# 保存之后执行:
$ sudo ldconfig
$ sudo vim /etc/bash.bashrc
# 在末尾添加如下内容:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
# source一下,使修改立即生效。
$ source /etc/bash.bashrc
# 7、查看安装结果
$ pkg-config opencv --cflags --libs
# 8、编译一个例子测试(若报错,参考https://blog.csdn.net/heiheiya/article/details/82590601):
$ cd ../samples/cpp/example_cmake
$ cmake .
$ make

编译opencv过程中的问题一:
error:qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
CMake Error at /usr/share/cmake-3.5/Modules/FindQt4.cmake:1326 (message):
  Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
Call Stack (most recent call first):
  cmake/OpenCVFindLibsGUI.cmake:34 (find_package)
  CMakeLists.txt:601 (include)
解决一: 
sudo apt-get install aptitude
sudo aptitude install qt-sdk 

问题二:原文:https://blog.csdn.net/weixin_37761614/article/details/81122402 

error: ‘NppiGraphcutState’ has not been declared

解决方案:需要修改一处源码: 在graphcuts.cpp中将

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

改为

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

问题:下载问题

https://blog.csdn.net/lijuanyujihui/article/details/84302837

问题三如下图:

无效的答案:主要是因为openCV 库有多个产生的问题,这里我预先安装了 anaconda ,由于默认把 anaconda 的路径已经加到了环境变量中,这里我们还是用系统自带的 python 2 里面的 opencv 比较不容易产生问题,参考:http://www.manongjc.com/article/33159.html

有效的答案:

https://blog.csdn.net/u011361393/article/details/83210824

https://blog.csdn.net/qq_35759574/article/details/83507434

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.1.0 -D OPENCV_EXTRA_MODULES_PATH=/home/y760/Downloads/opencv-4.1.0/opencv_contrib-4.1.0/modules -D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so -D CUDA_ARCH_BIN=6.1 -D CUDA_ARCH_PTX="" -D WITH_CUDA=ON -D WITH_TBB=ON -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -D BUILD_opencv_python3=ON -D BUILD_opencv_python2=OFF -D PYTHON3_EXCUTABLE=/usr/bin/python3 -D PYTHON_INCLUDE_DIR=/usr/include/python3.6m -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D WITH_NVCUVID=ON -D BUILD_opencv_cudacodec=OFF -D BUILD_TIFF=ON ..

修改完路径后从mkdir build开始重新编译

装完后测试参考:https://blog.csdn.net/cocoaqin/article/details/78163171

[ 43%] Building CXX object modules/reg/CMakeFiles/example_reg_map_test.dir/samples/map_test.cpp.o
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteEncodedStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFGetField@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteDirectory@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadEncodedTile@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadRGBATile@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFClose@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFClientOpen@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFRGBAImageOK@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadEncodedStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetWarningHandler@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetErrorHandler@LIBTIFF_4.0’未定义的引用
collect2: error: ld returned 1 exit status
modules/phase_unwrapping/CMakeFiles/example_phase_unwrapping_unwrap.dir/build.make:101: recipe for target 'bin/example_phase_unwrapping_unwrap' failed
make[2]: *** [bin/example_phase_unwrapping_unwrap] Error 1
CMakeFiles/Makefile2:5066: recipe for target 'modules/phase_unwrapping/CMakeFiles/example_phase_unwrapping_unwrap.dir/all' failed
make[1]: *** [modules/phase_unwrapping/CMakeFiles/example_phase_unwrapping_unwrap.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....
[ 43%] Building CXX object modules/reg/CMakeFiles/opencv_perf_reg.dir/perf/perf_reg.cpp.o
[ 43%] Linking CXX executable ../../bin/example_plot_plot_demo
[ 43%] Linking CXX executable ../../bin/example_quality_brisque_trainer_livedb
[ 43%] Built target example_plot_plot_demo
[ 43%] Linking CXX executable ../../bin/example_quality_brisque_eval_tid2008
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteEncodedStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadEncodedStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFGetField@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteDirectory@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetWarningHandler@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetErrorHandler@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadEncodedTile@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadRGBATile@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFClose@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFRGBAImageOK@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFClientOpen@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用
collect2: error: ld returned 1 exit status
modules/quality/CMakeFiles/example_quality_brisque_trainer_livedb.dir/build.make:102: recipe for target 'bin/example_quality_brisque_trainer_livedb' failed
make[2]: *** [bin/example_quality_brisque_trainer_livedb] Error 1
CMakeFiles/Makefile2:5538: recipe for target 'modules/quality/CMakeFiles/example_quality_brisque_trainer_livedb.dir/all' failed
make[1]: *** [modules/quality/CMakeFiles/example_quality_brisque_trainer_livedb.dir/all] Error 2
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteEncodedStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadEncodedStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFGetField@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteDirectory@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetWarningHandler@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetErrorHandler@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadEncodedTile@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadRGBATile@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFClose@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFRGBAImageOK@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFClientOpen@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用
collect2: error: ld returned 1 exit status
modules/quality/CMakeFiles/example_quality_brisque_eval_tid2008.dir/build.make:102: recipe for target 'bin/example_quality_brisque_eval_tid2008' failed
make[2]: *** [bin/example_quality_brisque_eval_tid2008] Error 1
CMakeFiles/Makefile2:5657: recipe for target 'modules/quality/CMakeFiles/example_quality_brisque_eval_tid2008.dir/all' failed
make[1]: *** [modules/quality/CMakeFiles/example_quality_brisque_eval_tid2008.dir/all] Error 2
[ 43%] Linking CXX executable ../../bin/example_reg_map_test
[ 43%] Linking CXX executable ../../bin/opencv_test_reg
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteEncodedStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFGetField@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteDirectory@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadEncodedTile@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadRGBATile@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFClose@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFClientOpen@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFRGBAImageOK@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadEncodedStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetWarningHandler@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetErrorHandler@LIBTIFF_4.0’未定义的引用
collect2: error: ld returned 1 exit status
modules/reg/CMakeFiles/example_reg_map_test.dir/build.make:101: recipe for target 'bin/example_reg_map_test' failed
make[2]: *** [bin/example_reg_map_test] Error 1
CMakeFiles/Makefile2:6115: recipe for target 'modules/reg/CMakeFiles/example_reg_map_test.dir/all' failed
make[1]: *** [modules/reg/CMakeFiles/example_reg_map_test.dir/all] Error 2
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteEncodedStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadEncodedStrip@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFGetField@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFWriteDirectory@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetWarningHandler@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFSetErrorHandler@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadEncodedTile@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadRGBATile@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFClose@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFRGBAImageOK@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFClientOpen@LIBTIFF_4.0’未定义的引用
../../lib/libopencv_imgcodecs.so.4.1.0:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用
collect2: error: ld returned 1 exit status
modules/reg/CMakeFiles/opencv_test_reg.dir/build.make:134: recipe for target 'bin/opencv_test_reg' failed
make[2]: *** [bin/opencv_test_reg] Error 1
CMakeFiles/Makefile2:5882: recipe for target 'modules/reg/CMakeFiles/opencv_test_reg.dir/all' failed
make[1]: *** [modules/reg/CMakeFiles/opencv_test_reg.dir/all] Error 2
[ 43%] Linking CXX executable ../../bin/opencv_perf_reg
[ 43%] Built target opencv_perf_reg
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

十、为python3.6安装cv2、pytorch、pytorch-division等

1、为python安装cv2:install opencv-python

编译的opencv version 可以与opencv-python的版本不同 ,当然也可以安装制定的版本

ubuntu下为python2和python3分别配置不同版本的opencv:

https://blog.csdn.net/lch_vison/article/details/79112693

# 好像第九步编译完opencv,不用install opencv-python就可以在python中import cv2
$ pip3 install opencv-python

# 安装制定版本的opencv-python,如果直接运行不可以就需要先下载whl了
$ pip3 install opencv_python‑3.4.0‑cp36‑cp36m‑linux_amd64.whl
# 上述命令有时会报错
opencv_python‑3.2.0‑cp35‑cp35m‑win_amd64.whl,它的三个关键字是(‘cp35', ‘cp35m', ‘win_amd64'),但我电脑里的pip并没有与之完全对应的,因而出现了不supported的现象。

解决方案当然就是更新pip了。

使用更新指令python -m pip install --upgrade pip就可以解决问题了。
import cv2   
  
img = cv2.imread("./cat.jpg")   
cv2.namedWindow("Image")   
cv2.imshow("Image", img)   
cv2.waitKey (0)  
cv2.destroyAllWindows()
(base) nihao@nihao-Nuvo-6108GC:~/Desktop$ python cat.py 
OpenCV(3.4.1) Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /opt/conda/conda-bld/opencv-suite_1527005194613/work/modules/highgui/src/window.cpp, line 618
Traceback (most recent call last):
  File "cat.py", line 4, in <module>
    cv2.namedWindow("Image")   
cv2.error: OpenCV(3.4.1) /opt/conda/conda-bld/opencv-suite_1527005194613/work/modules/highgui/src/window.cpp:618: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow

但是上面的安装可能不能读取视频,需要下述指令

# 1、查看python3.6的路径有无编译好的cv2.so
$ find /usr/local/lib/ -type f -name "cv2*.so"

# 2、安装python版本的opencv
https://www.lfd.uci.edu/~gohlke/pythonlibs/

$ pip install opencv-python
$ pip install opencv-contrib-python

2、安装pytorch、pytorch_division

安装pytorch也需要与安装的cuda想对应,直接去pytorch官网选择相应的版本会提示下载命令

运行pytorch可能出现的因为与cuda版本不适应的问题:

总结一下, 在CUDA10下, 要把DL_Image_Gen跑起来, 其实关键是要在pytorch官网上, 安装对应CUDA10的那个torch版本, 而cudnn.benchmark=True or False其实并不影响, 下面, 就是要试一下在CUDA9.0的环境下能不能跑起来
https://pytorch.org/get-started/previous-versions/
作者:conson_wm
链接:https://www.jianshu.com/p/88f883e9d43e

 

十一、安装ssh

这样可以通过ssh访问该电脑

sudo apt-get install openssh-server
测试是否安装成功
ps -s | grep ssh
启动ssh:
/etc/init.d/ssh start
查看IP
ifconfig
外部链接
ssh parallels@10.211.55.5
链接成功的效果:
cd /
ls

十二、 安装 Pycharm

https://blog.csdn.net/qq_15192373/article/details/81091278

https://blog.csdn.net/qq_31531635/article/details/79963188

https://blog.csdn.net/zzc15806/article/details/81669591

1、下载

从官网(http://www.jetbrains.com/pycharm/download/#section=linux)下载Community版 for Linux。并将下载好的文件copy到想安装的目录下。

2、安装

$ cd home/zhichao/pycharm
$ tar -xfz pycharm-community-2017.1.4.tar.gz
$ cd pycharm-community-2017.1.4/bin
$ ./pycharm.sh

出现Complete-Installation提示框,如图5,如果需要导入之前安装版本的配置的话,就选第一个,没有就选第二个。所以这里选第二个,直接点OK,如图5;如果需要保留原来版本的配置,则选择第一个,否则选择第二个,这里我选择第二个。 参考:https://blog.csdn.net/qq_15192373/article/details/81091278
然后将说明翻到最下面,选择Accept。 
安装完成后,会弹出PyCharm Initial Configuration框,PyCharm初始化配置。 
Keymap scheme:键盘方案,选择Eclipse,意思是设置Pycharm为Eclipse快捷键 
ide theme:皮肤主题,默认Intellij。可根据自己喜欢选其他的 
Editor colors and fonts:编辑器的主题,可以点击下面的“Click to hide preview”进行预览,我这里选择的是 Darcula 
然后下面的Create desktop entry 默认打勾就行了 
最后点击OK,完成设置,这样pycharm就安装好了。然后就是配置pycharm 
1. 点击File-Default Settings-Project Interpreter 
2. 选择Project Interpreter最右边的设置,选择Add..,选择System interpreter,右边的路径选择anaconda3/bin/python3.6,选择OK 
3. 选择绿标“+”号,搜索pytorch,然后出现pytorch-gpu,选择Install Package 
4. 搜索opencv,然后出现opencv,选择Install Package 
5. 搜索tensor flow,然后出现tensorflow-gpu,选择Install Package 
--------------------- 
作者:丶Minskyli 
来源:CSDN 
原文:https://blog.csdn.net/qq_31531635/article/details/79963188 
版权声明:本文为博主原创文章,转载请附上博文链接!

$ sudo pip uninstall tensorflow

$ sudo pip install tensorflow-gpu #for python2.7 GPU support

十三、Ubuntu连接网线却无法连接网络的问题

问题:右上角网络那里点开,显示的device not managed

解决:参考 https://blog.csdn.net/s_e_itachi/article/details/79605679

# 1、打开终端
$ sudo vi /etc/NetworkManager/NetworkManager.conf
# 2、修改[ifupdown]中的managed的值,将false改为true
# 3、保存关闭,重启电脑即可

十四、运行程序报的warning(未解决)

warning:

/home/neousys/.local/lib/python3.6/site-packages/sklearn/utils/linear_assignment_.py:21: DeprecationWarning: The linear_assignment_ module is deprecated in 0.21 and will be removed from 0.23. Use scipy.optimize.linear_sum_assignment instead.
  DeprecationWarning)
https://www.programcreek.com/python/example/91391/sklearn.utils.linear_assignment_.linear_assignment

https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.optimize.linear_sum_assignment.html
https://www.programcreek.com/python/example/97225/scipy.optimize.linear_sum_assignment

问题:
Scanning dependencies of target opencv_cudev
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libGL.so', needed by 'lib/libopencv_cudev.so.3.4.0'.  Stop.
make[2]: *** Waiting for unfinished jobs....

https://blog.csdn.net/fb_941219/article/details/83549720

十五、编写C++项目的OPENCV程序

https://blog.csdn.net/DumpDoctorWang/article/details/82259357

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值