由于在Ubuntu18.04下ROS Melodic是運行在python 2.7環境下,而我的程序需要運行在anaconda創建的python 3.x環境里,這就需要用到cv_bridge這個庫,而不出意外的,各種報錯,比如:
from cv_bridge.boost.cv_bridge_boost import getCvType
ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boost)
在今年上半年,我的解決方法是:完全參考下面的兩兩篇博客:
安裝CV_bridge Ubuntu18.04+Melodic+Python3 - 知乎
ROS——在Ubuntu18.04下基于ROS Melodic編譯python3的cv_bridge_ros melodic python3 cv_bridge_Irving.Gao的博客-CSDN博客
但今天在一臺新電腦上用同樣的方法,一直在編譯的時候報錯:
CMake Error: File /home/sjh/project/ros_cv_bridge/src/package.xml does not exist.
CMake Error at /opt/ros/melodic/share/catkin/cmake/stamp.cmake:10 (configure_file):configure_file Problem configuring file
Call Stack (most recent call first):/opt/ros/melodic/share/catkin/cmake/catkin_package_xml.cmake:72 (stamp)/opt/ros/melodic/share/catkin/cmake/catkin_package_xml.cmake:50 (_catkin_package_xml)/opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:99 (catkin_package_xml)CMakeLists.txt:12 (catkin_package)CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:116 (message):catkin_package() 'catkin' must be listed as a buildtool dependency in thepackage.xml
Call Stack (most recent call first):/opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package)CMakeLists.txt:12 (catkin_package)-- Configuring incomplete, errors occurred!
See also "/home/sjh/project/ros_cv_bridge/build/CMakeFiles/CMakeOutput.log".
See also "/home/sjh/project/ros_cv_bridge/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed
換了多種方法,無解,但想到,在上面的教程中,使用的是catkin_make install指令,按道理說,這個指令中得到的install文件夾,在相同系統和架構的設備上是通用的,因此打算從另一臺電腦上搬過來
下面開始過程:
注意:僅適用于X86架構的Ubuntu18.04+ROS Melodic環境下,其他環境,請繼續參考文章開始提到的教程
一、下載install文件
百度網盤鏈接:https://pan.baidu.com/s/1Q6rChZHTbMvdutUgQzNDPQ?pwd=wxng
提取碼: wxng
或者在CSDN資源中下載:https://download.csdn.net/download/weixin_45498383/88563843
二、解壓install文件
上一步中下載下來的是一個壓縮包,將其解壓在一個文件夾內即可,想我就解壓在了
~/project/ros_cv_bridge/install
目錄下,要記住這個目錄,后面要用的
三、修改.bashrc文件
打開.bashrc文件,在文末添加如圖內容:
source ~/project/ros_cv_bridge/install/setup.bash --extend
然后關掉文件,關掉你的終端,重新打開,再進行測試,發現已經不再報錯了,cv_bridge運行正常
注意:僅適用于X86架構的Ubuntu18.04+ROS Melodic環境下,其他環境,請繼續參考文章開始提到的教程