问题说明
Ubuntu16.04 安装了ROS Kinetic之后Python3不能import cv2
“据了解在,python中是通过cv2.so调用opencv的库的:
Python调用opencv的原理是:opencv编译出共享库文件,python把这个共享库文件作为一个模块加载并使用。通俗点就是,编译opencv的时候开启python接口选项,编译好了会产生cv2.so(linux下)或者cv2.pyd(windows下)这个共享库文件,python代码中import这个cv2就可以用了。为了能正确import它,往往需要把cv2.so放在python找包能找到的路径下,或者修改PYTHONPATH环境变量让它包含cv2.so所在路径。
可以看出这个问题是由ROS添加/opt/ros/kinetic/lib/python2.7/dist-packages到python路径引起的。”
处理方法
找到自己使用到cv.so文件的库(报错语句中会提示),在import cv2语句前加入
import sys
sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')
即可