linux 为什么ROS环境在Conda之后被打破?

o8x7eapl  于 2023-06-05  发布在  Linux
关注(0)|答案(1)|浏览(282)

我尝试在Docker环境中使用Contact-GraspNet,其中包含预安装ROS的基础映像。有没有问题,我的形象,我已经使用它的其他目的,为ROS之前。问题是运行Contact-Graspnet的推荐方法是通过创建conda环境,当我这样做时,我的包不再构建,rospy也不工作。我想因为ros是通过apt安装的,所以应该不会有问题吧?下面是我使用的docker镜像:

... 
general setup of the docker image
...

ENV PATH="/root/miniconda3/bin:$PATH"
RUN apt-get update \
    && apt-get install -y wget

RUN wget \
    https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-Linux-x86_64.sh \
    && mkdir /root/.conda \
    && bash Miniconda3-py38_23.3.1-0-Linux-x86_64.sh -b

RUN echo "source activate contact_graspnet_env" >> ~/.bashrc \
    && /bin/bash -c "source ~/.bashrc"

RUN conda --version

WORKDIR /ros-ws

RUN cd src && \
    git clone https://github.com/NVlabs/contact_graspnet.git

RUN cd src/contact_graspnet && conda env create -f contact_graspnet_env.yml

RUN sudo apt-get install freeglut3-dev -y

RUN /bin/bash -c "source activate contact_graspnet_env"

CMD bash

我试着在本地安装conda包,但这不允许我运行contact-graspnet,我不确定ROS。

f3temu5u

f3temu5u1#

当您激活conda环境时,它会将自己的目录前置到PATH。这可能会导致ROS出现问题。
要解决这个问题,我们可以在激活conda环境后检查ROS安装脚本是否来源,方法是在激活conda环境的行后添加命令,在.bashrc中源取ROS安装脚本,ROS安装脚本必须类似于/opt/ros/melodic/setup.bash

相关问题