CentOS python import cv2 段错误问题

引子

最近项目中用到了opencv库,需要在python中使用;
按照网上的教程,安装了opencv-python库,还有系统相关的opencv库
但是导入opencv库报段错误

问题现象

$ python -c 'import cv2'
段错误

解决方法

查看了各种文章,无外乎几种解决方法:

  1. 安装库
  2. 源码编译opencv库

各路方法都试了试,还是不行,编译opencv库的依赖比较多,所以轻易不想尝试。
经过分析,发现,如果是sudo python -c 'import cv2'就没有问题,但是线上服务又不能用root权限运行,所以还得解决。

既然sudo没有问题,说明库的安装是没有问题的,既然普通用户不能导入,说明还是python库的路径问题。

再仔细分析,python的site-package导入有一定的顺序,发现安装后的opencv库路径普通用户可能访问有问题:

$ sudo find / -name 'cv2.so'
/usr/lib64/python2.7/site-packages/cv2/cv2.so

修改方法比较简单,把cv2.so拷贝到用户的路径就可以了:

mkdir -p .local/lib/python2.7/site-packages
cp /usr/lib64/python2.7/site-packages/cv2/cv2.so .local/lib/python2.7/site-packages

再次执行导入cv2成功。

你可能感兴趣的:(CentOS python import cv2 段错误问题)