我在具有ROS indigo和python3的Ubuntu 14.04上有一个计算机视觉项目,然后不得不在具有ROS动力学的Ubuntu 16.04上进行了开发。在这里,我遇到了多个问题:
1)我安装了opencv,但无法将其导入python3中,错误消息为:
Traceback (most recent call last):
File "test.py", line 2, in <module>
import cv2
ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so:
undefined symbol: PyCObject_Type
Run Code Online (Sandbox Code Playgroud)
我发现只是重命名cv2.so
cd /opt/ros/kinetic/lib/python2.7/dist-packages/
sudo mv cv2.so cv2_ros.so
Run Code Online (Sandbox Code Playgroud)
然后我能够导入cv2并使用它
2)然后我无法导入rospy,但是安装python3-catkin-pkg-modules和python3-rospkg-modules解决了该问题
3)最后,我遇到了cv_bridge的问题,它说:
[ERROR] [1520780674.845066]: bad callback: <bound method ViewsBuffer.update of <__main__.ViewsBuffer object at 0x7f5f45a07f28>>
Traceback (most recent call last):
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/topics.py", line 750, in _invoke_callback
cb(msg)
File "test.py", line 48, in update
im = self.bridge.imgmsg_to_cv2(im, "bgr8")
File "/opt/ros/kinetic/lib/python2.7/dist-packages/cv_bridge/core.py", line 163, in imgmsg_to_cv2
dtype, n_channels = self.encoding_to_dtype_with_channels(img_msg.encoding)
File "/opt/ros/kinetic/lib/python2.7/dist-packages/cv_bridge/core.py", line …Run Code Online (Sandbox Code Playgroud)