2024.07.18更新----------------conda和pip安装的包冲突会使得编译的cv_bridge失效!!!
电脑1:作者conda新建虚拟环境后,打开pycharm导入虚拟环境,pip install需要的pkg,ignore pycharm顶部提示的缺少包安装,cv_bridge不会出问题。
电脑2:作者conda新建虚拟环境后,打开pycharm导入虚拟环境,安装pycharm顶部提示的缺少包,运行py文件时pip install 缺少的包,但cv_bridge的运行会出现问题。(可以点击进入cv_bridge的init文件,把try注释掉,再运行会把错报出来)
解决:conda只用于新建虚拟环境,后续包一律用pip安装!!!
这个问题耗费了好几天,最后才找到是conda和pip对文件索引的原因,没想到还会出这种错误,供参考。
附:记录一个代码中的小问题:python的 global全局变量 不要跟前面的名字一样,如下,这样会导致代码运行一段时间后出错。
原文-------------------------------------------------------------------------------------------------------------------
本文参考:Ubuntu18.04配置python2和python3的ROS,并支持深度学习_ubuntu18.04中ros支持的python版本-CSDN博客
《Ubuntu18.04配置python2和python3的ROS,并支持深度学习》
但在实际配置时,存在一些不一样,记录一下,供参考。
目录
系统版本
Ubuntu 18.04 ;ROS-melodic ;Miniconda
1. minicinda配置虚拟环境
1.1 创建并激活虚拟环境python3.6
主目录打开终端
conda create -n ros_pytorch python=3.6
conda activate ros_pytorch
1.2 安装torch torchvision opencv
torch库中下载 torch-1.10.2+cpu-cp36-cp36m-linux_x86_64.whl 和 torchvision-0.11.3+cpu-cp36-cp36m-linux_x86_64.whl 放在主目录 (也可以pip命令安装)
继续在1.1的终端输入
pip install torchvision-0.11.3+cpu-cp36-cp36m-linux_x86_64.whl torch-1.10.2+cpu-cp36-cp36m-linux_x86_64.whl
继续输入,安装opencv
pip install opencv-python==4.5.4.60
在conda环境下安装ROS相关包
pip install numpy pyyaml rosdep catkin_pkg rospkg rosinstall
2. 编译cv_bridge
2.1 创建一个新的工作空间并初始化
mkdir -p catkin_ws_c/src && cd catkin_ws_c/src
catkin_init_workspace
如下,参考大佬的
2.2 拉取vision_opencv包
git clone https://gitee.com/irvingao/vision_opencv.git
2.3 查看conda/envs/下的python3.6m和python3.6路径
whereis python
2.4 配置编译
在终端连续输入以下三个命令,注意路径修改!sia-zph是我的主机名。
返回catkin_ws_C目录下
cd ..
export CPLUS_INCLUDE_PATH=/home/sia-zph/miniconda3/envs/ros_pytorch/bin/python3.6m
catkin_make install -DCMAKE_BUILD_TYPE=Release -DSETUPTOOLS_DEB_LAYOUT=OFF -DPYTHON_EXECUTABLE=/home/sia-zph/miniconda3/envs/ros_pytorch/bin/python
我的终端运行就不截图了,参考大佬的。
3. 问题所在!!!
3.1 激活环境输入以下,最后一个命令会报错。与大佬的不一致。
python
import cv_bridge
from cv_bridge.boost.cv_bridge_boost import getCvType
3.2 解决
在激活环境的终端继续输入以下命令,以便用工作空间将配置文件写到.bashrc中
sudo gedit ~/.bashrc
把下面这个命令放在bashrc的最后。注意:更改主机名!!!
source /home/sia-zph/catkin_ws_c/install/setup.bash --extend
继续终端运行下source
source ~/.bashrc
再输入3.1的命令查看,不报错了,cv_bridge可以正常使用。