ubuntu18.04 解决conda 环境python3使用cv_bridge

本文通过参考此文章完成自己conda 环境中python3.9的配置,主要记录解决虚拟环境中的问题,自用。

1.首先进入python3的环境并安装相关依赖包

# 然后安装相关依赖包
sudo apt-get install python-catkin-tools python3-dev python3-catkin-pkg-modules python3-numpy python3-yaml ros-melodic-cv-bridge

2.创作工作空间存放待编译 cv_bridge 文件

mkdir -p catkin_workspace/src

3.指示catkin设置cmake变量

cd catkin_workspace
#注意,该处之前博主用的是系统自带python版本,我直接用的是conda 环境中的python路径,可以根据自己需要进行配置
catkin config -DPYTHON_EXECUTABLE=/home/XXX/anaconda3/envs/FastSAM/bin/python3 -DPYTHON_INCLUDE_DIR=/home/XXX/anaconda3/envs/FastSAM/include/python3.9 -DPYTHON=/home/XXX/anaconda3/envs/FastSAM/lib/libpython3.9.so

4.进行catkin config --install 据博主说不成功也没关系,我成功了。

# Instruct catkin to install built packages into install place. It is $CATKIN_WORKSPACE/install folder
catkin config --install

5.在catkin_workspace工作空间中克隆 cv_bridge

git clone https://github.com/ros-perception/vision_opencv.git src/vision_opencv

此处直接利用src/vision_opencv将vision_opencv放置在src文件夹中,不需要先进入src中git clone 学到了!!!

6.寻找合适自己环境的版本

apt-cache show ros-melodic-cv-bridge | grep Version

7.我的版本为1.13.1

git checkout 1.13.1

8.开始编译

#有可能会有warning,不用管,只要不报错就行
catkin build
或者 catkin build cv_bridge

在这块我出现以下两处错误:

错误1:

CMake Error at /home/XXX/anaconda3/lib/cmake/Boost-1.73.0/BoostConfig.cmake:141 (find_package):
  Could not find a package configuration file provided by "boost_python"
  (requested version 1.73.0) with any of the following names:

    boost_pythonConfig.cmake
    boost_python-config.cmake

  Add the installation prefix of "boost_python" to CMAKE_PREFIX_PATH or set
  "boost_python_DIR" to a directory containing one of the above files.  If
  "boost_python" provides a separate development package or SDK, be sure it
  has been installed.

错误2:

Errors     << cv_bridge:install /home/XXX/workspace/cv_ws/logs/cv_bridge/build.install.000.log
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: option --install-layout not recognized
CMake Error at catkin_generated/safe_execute_install.cmake:4 (message):
  
  execute_process(/home/XXX/workspace/cv_ws/build/cv_bridge/catkin_generated/python_distutils_install.sh)
  returned error code
Call Stack (most recent call first):
  cmake_install.cmake:156 (include)

错误1,参考此处解决方案,在catkin build 后加上-DBoost_NO_BOOST_CMAKE=TRUE

错误2,参考此文章,在catkin build 后加上-DSETUPTOOLS_DEB_LAYOUT=OFF

所以最终我的执行命令为:

catkin build cv_bridge -DBoost_NO_BOOST_CMAKE=TRUE -DSETUPTOOLS_DEB_LAYOUT=OFF

9.与参考博主一致:进入python3环境(virtualenv)之后,先进入到catkin_workspace工作目录下,运行下面的source,然后再到相关的节点工作空间(如catkin_ws),就可以启动那些使用到cv_bridge库的相关节点了:

# 打开虚拟环境env_py3和进入catkin_workspace空间进行source。
conda activate pytorch
cd catkin_workspace/
# 这里 --extend 参数的作用是让这次的路径配置不影响之前配置好的路径,否则这一次source会覆盖掉之前配置的路径。
source install/setup.bash --extend##每次都必须先激活然后才能使python3调用cv_bridge
cd ..
# 进入另一个工作空间,该空间含有需要启动的python脚本节点。
cd catkin_ws/src/beginner_tutorials/scripts/
python ImgSub.py

最终,完工大吉,感谢各位博主的辛苦采坑,让我顺利完成自己的解决方案!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值