ROS2/ROS+conda+pytorch配置

0、需求

项目开发中遇到在ROS2中调用pytorch,但pytorch安装在了conda环境下。如果独立安装ros和conda会存在python版本、ubuntu系统版本的问题。网上还没看到比较好的解决方案,通过探索发现以下方案,实现的效果是在一个conda环境中,同时使用ros2/ros1和pytorch。

1、安装miniforge

下载链接:NJU Mirror , miniforge和conda功能完全一致,但是开源,下载速度快。

2、安装mamba和ros

链接:Getting Started - RoboStack ; mamba的下载速度更快

3、安装pytorch 

先在有ros的环境中,确认python版本,比如python为3.10,那么,pytorch必须有对应的版本才能正常安装,进入下面的链接看看哪个pytorch版本有对应python版本即可。

https://download.pytorch.org/whl/torch_stable.html

再进入到:Previous PyTorch Versions | PyTorch选择conda安装,复制安装代码,并把conda改成mamba,可快速完成安装。

4、miniforge和miniconda(anaconda)的混合使用

方法一:修改.bashrc,通过定义conda_env变量,进行切换
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
conda_env="miniconda3" #miniforge-pypy3  miniconda3
__conda_setup="$('/home/user/$conda_env/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/user/$conda_env/etc/profile.d/conda.sh" ]; then
        . "/home/user/$conda_env/etc/profile.d/conda.sh"
    else
        export PATH="/home/user/$conda_env/bin:$PATH"
    fi
fi
unset __conda_setup
if [ $conda_env == "miniforge-pypy3" ]; then
    if [ -f "/home/user/miniforge-pypy3/etc/profile.d/mamba.sh" ]; then
        . "/home/user/miniforge-pypy3/etc/profile.d/mamba.sh"
    fi
fi
# <<< conda initialize <<<

修改完成后要记得保存,新开一个命令行或者在当前命令行运行 source ~/.bashrc 才能生效

方法二:不修改.bashrc,在命令行前手动source
source /home/user/miniforge-pypy3/etc/profile.d/conda.sh
conda activate ros
python DataPlayer.py

第一行的miniforge-pypy3,也可换成minconda3或anaconda3,效果是一样的

你可能感兴趣的:(conda,pytorch,人工智能)