Linux下安装opencv-python

来源:互联网 发布:python是开源的吗 编辑:程序博客网 时间:2024/05/21 21:45

一把辛酸泪,用的linux 服务器不是ubuntu,不能apt-get 安装,然后只有源码编译安装了。。。。


其实这篇文档写的已经很详细了,http://docs.opencv.org/trunk/doc/py_tutorials/py_setup/py_setup_in_fedora/py_setup_in_fedora.html#install-opencv-python-in-fedora

一般来说,按照这个步骤就能弄好的。

但是我的问题是:这个版本的opencv-python只支持python>=2.7。而linux系统默认的时python2.6. 所以我按官方步骤重新装了python2.7,并把默认python解释器换为python2.7.

(题外话,把linux系统的默认python2.6换为2.7之后,运行yum会报错,因为yum是基于2.6的。所以要修改yum的配置,使它运行时使用python2.6,而不是现在的默认解释器python2.7)

好了,问题来了。编译 opencv-python的时候报错:说什么abstract.o 文件应该用 -fPIC 重新编译。。。问题应该是我安装python2.7时,make时没有设置gcc 的-fPIC参数。一开始不知道怎么弄,后来发现需要修改官方的安装python2.7的方法为:

cd {root dir of Python2.7}

./configure --prefix=/usr/local/ --enable-shared CFLAGS=-fPIC  

make

sudo make install

如果之前不小心make了一次,但不是-fPIC 模式下的,要重新解压python2.7的tarball, 然后cd进去再执行上面步骤,否则make时会检查到已经有编译好的 *.o 文件,直接跳过,最后相当于没有进行-fPIC 编译。


现在可以再opencv的目录下make了。opencv-python编译使用的时-fPIC编译后的 libpython2.7.a 文件,不是libpython2.7.so 文件。所以确保openv编译是能找到 .a 文件。如果找不到,会报错,然后把 .a 文件复制到opencv指定的地方就好了。





0 0