这两天在安装opencv。ubuntu16.04
先放一个官方的安装帮助文档https://docs.opencv.org/3.4/d7/d9f/tutorial_linux_install.html
按步骤一步步进行,到cmake时发现默认只会为python2提供支持而没有python3。
于是使用cmake-gui进行手动的配置,到PYTHON3_LIBRARY这一项时,发现目录中没有libpython3.5m.so,但是有libpython3.5m.so.1和libpython3.5m.so.1.0 。我看了一下这两个文件的大小是完全一样的,由于我之前由于一些原因重装过python(这里有个坑,后面再说)我以为是卸载不彻底的原因导致多了一个一样的,于是手贱rm -f删了一个。。!然后才发现剩下的一个是一个链接文件,原文件删除后这个也就没有用了!!。。网上搜寻无果后急中生智去别人电脑里拷贝了一个(希望没有问题)
接着继续配置cmake,到PYTHON3_NUMPY_INCLUDE_DIRS时,发现根本没有相应的目录。。继续百度。。这才发现似乎没有装python-numpy这个东西。这个在开头的文档里有提到。然而我已经apt-get过了。这才意识到在终端中输apt-get install python-numpy默认只会装Python2的版本(系统默认的python也是python2,应该是跟随系统的)。再来一遍apt-get install python3-dev python3-numpy,这下ok了。。重新cmake的时候已经能自动读出python3的路径。之后就没问题了。
前面提到的重装python的坑,是之前出现过一个奇怪的问题,在用cuda-gdb调试的时候,如果print或info locals之类的打印变量值,会先弹出一行甚至很多行python异常。网上查询无果后我就手贱卸载了系统自带的python。。结果重启后桌面挂了,任务栏和图标都不见了。。 这才知道这部分系统功能是依赖python实现的……所以千万别手贱卸载系统自带的python。 (不过还好,ctrl+alt+F1可以进入命令行,然后重装ubuntu桌面……)