wsl下Ubuntu-20.04与anaconda安装配合vscode使用
wsl下Ubuntu-20.04与anaconda安装配合vscode使用
本篇文章介绍博主在安装和配置环境过程中的步骤和遇到的一些问题,提供给大家参考。
一、wsl开启
1.wsl介绍
wsl的全称是Windows Subsystem for Linux(Windows上的Linux子系统),相比于VMware虚拟机和双系统来说,在win10系统上能够运行ubuntu,实现两个系统之间的交互,非常方便。
2.wsl启用
首先查看任务管理器中的性能,看看CPU是否支持虚拟化,一般是支持的,然后就可以进行下一步。如果不支持的话,可以参考这个文章来开启虚拟化。
链接: Windows开启 CPU 虚拟化 + 关闭 Hyper-V
然后在window系统下面的搜索框中搜索控制面板,在控制面板中打开程序,进去之后再打开程序和功能下面的启用或关闭Windows功能。将虚拟机平台和适用于Linux的Windows子系统打开,打开之后点击确认,系统会提示进行重启,根据电脑提示重启即可,重启完毕之后再次打开此电脑就可以看到一个Linux的小企鹅图标,这就说明wsl已经启动成功了。
二、安装Ubuntu20.04
1.安装ubuntu并创建用户
直接打开开始菜单中的微软应用商店Microsoft Store,搜索Ubuntu,在搜索结果中选择Ubuntu 20.04.6 LTS,点击获取并安装,最后等待安装好即可。
安装完成之后,点击左下角开始菜单中的最近添加的软件,可以看到我们刚刚下载好的Ubuntu 20.04.6 LTS,单击打开。软件会显示正在初始化,等待初始化完成之后,会让我们输入自己的用户名和密码,正常输入即可。
注意:输入密码的时候没有显示是正常现象,ubuntu会把密码隐藏,还有就是一定要记住自己的密码,不要忘记,否则后面会很难办。
输入用户名和密码并确认密码之后,等待初始化完成就可以正式进入Ubuntu系统了,可以看到绿色的字,上面写了“自己用户名@localhost:”,到这里说明安装ubuntu与创建用户完成了。
2.移动Ubuntu从c盘到d盘
由于我们直接从微软应用商店下载的Ubuntu 20.04是默认安装到C盘的,在后续使用过程中会下载许多软件和包,为了避免C盘爆红,需要将Ubuntu从c盘移动到其他的盘,我这里演示从c盘移动到d盘。参考的文章如下:
链接: 把 wsl 从 C 盘迁移到 D 盘
对wsl的操作在cmd命令行进行,系统搜索框中输入cmd就可以进入。
2.1要确保wsl的状态是停止的(stopped)
在命令行中输入
wsl -l -v
可以查看当前wsl的状态,如果不是stopped,而是running,可以使用下列命令使他停止。
wsl --shutdown
shutdown是关闭ubuntu的命令。
2.2创建D盘的目录,用来存放移动过去的Ubuntu
mkdir D:WSL
mkdir是创建文件夹的命令,根据指定的位置和名称进行创建。
2.3将wsl导出为tar压缩包,位置为刚刚创立的WSL文件夹中
wsl --export Ubuntu-20.04 D:WSLubuntu2004.tar
export是导出命令,Ubuntu-20.04是你要导出的系统,D:WSLubuntu2004.tar代表导出到D盘的WSL文件中成为了一个名为ubuntu2004.tar的压缩包,这个名字可以根据自己定。
2.4导出之后把c盘里面的Ubuntu卸载
wsl --unregister Ubuntu-20.04
unregister是卸载命令,Ubuntu-20.04代表要被卸载的系统。
2.5将tar压缩包导入到D盘
wsl --import Ubuntu2004 D:WSLUbuntu2004 D:WSLubuntu2004.tar --version 2
import是导入命令,Ubuntu2004是导入后新的系统的名字,可以自己定,D:WSLUbuntu2004代表导入到D盘的WSL文件中的Ubuntu2004文件夹,D:WSLubuntu2004.tar是原来系统压缩包的位置,–version 2代表wsl的版本为wsl2。
打开此电脑可以看到d盘WSL文件中有一个Ubuntu2004的文件夹和一个ubuntu2004.tar的压缩包。
打开Ubuntu2004文件夹,可以看到如下所示的文件,这个是Ubuntu系统的镜像,我们已经成功把他从C盘移动到D盘了。
此电脑中的Linux小企鹅下面出现了Ubuntu2004,可以通过这个进入Ubuntu的目录结构。
2.6将新系统设置为默认的
wsl --set-default Ubuntu2004
–set-default是你要设置的默认系统,如果你还有别的系统就可以把Ubuntu2004改成别的系统名字。
2.7验证是否安装成功
打开cmd输入wsl,观察能够正常进入系统,说明安装成功。
如果进入的账户是root而不是我们刚刚创建的自己的账户,可以通过进入Ubuntu的目录结构,打开etc文件夹,使用鼠标滚轮划到最下面,找到wsl.conf,使用记事本打开,添加命令
[user]
default=chuan
其中chuan是我自己的用户名,然后保存关闭,再使用cmd打开wsl就可以进入自己账户。
如果显示
chuan@localhost:/mnt/c/Users/4564332$
发现多了后面/mnt/c/Users/4564332$,是正常现象,输入cd后按回车就可以变成
chuan@localhost:
后续操作在这个基础上进行即可。
三、安装ros
下图给出了常见的Ubuntu系统与ROS版本对应表。由于我使用的20.04版本的,并且我要用ROS1,因此对应的ROS版本为Noetic,大家可以根据自己的Ubuntu系统版本选择其他ROS版本。
参考文章:
链接: 详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)
1.准备工作
打开cmd,输入wsl进入Ubuntu系统,再输入cd进入
chuan@localhost:
复制这个命令执行
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
复制这个命令执行
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
复制这个命令执行
sudo apt update
复制这个命令执行
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
2.安装ros
复制这个命令执行
sudo apt install ros-noetic-desktop-full
用于安装ros noetic全套工具包
3.初始化rosdep
由于我一直失败,直接采用参考文献的末尾的六部工坊的配置修改工具进行,这个方法简单有效。
依次执行以下5条命令:
sudo apt-get install python3-pip
sudo pip3 install 6-rosdep
sudo 6-rosdep
sudo rosdep init
rosdep update
4.配置环境变量
依次执行以下两条命令:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
5.安装rosinstall
执行以下命令:
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool
6.验证ROS安装成功
在终端输入roscore,可以得到下方所示。
重新打开一个终端,通过wsl进入Ubuntu系统,输入
rosrun turtlesim turtlesim_node
可以得到下图所示的小乌龟
再重新打开一个终端,通过wsl进入Ubuntu系统,输入
rosrun turtlesim turtle_teleop_key
可以通过上下左右方向键控制小乌龟移动
至此,ROS安装成功。
四、安装anaconda
anaconda是对python环境进行管理的软件,可以构建多个不同的python虚拟环境,适用于不同的项目需求,避免包与包之间不同版本的冲突。在Ubuntu系统中安装anaconda可以参考这个文章:
链接: WSL 中安装 Anaconda 的详细步骤和常用 Conda 指令详解(同样适用于所有版本的 Ubuntu)
1.下载anaconda安装包
打开cmd,输入wsl进入Ubuntu系统,再输入cd进入
chuan@localhost:
创建一个名为Download的文件夹,用来存放安装包
mkdir ~/Download
进入已经创建好的Download文件夹
cd ~/Download
下载安装包
wget https://repo.anaconda.com/archive/Anaconda3-xxxx.xx-x-Linux-x86_64.sh
2.进行安装
下载完成之后,不要退出,确保目录在Download文件,执行下列命令
chmod +x Anaconda3-2024.10-1-Linux-x86_64.sh
./Anaconda3-2024.10-1-Linux-x86_64.sh
然后点击enter,会出现服务条款,按一下q可以直接跳到最后
Please press ENTER to continue
>>>
然后输入yes,接受服务条款,点击enter
Do you accept the license terms?[yes|no]
>>>yes
后面会出现
[/home/chuan/anaconda3]>>>
这是安装位置,直接采用默认位置就行,然后点击enter
3.添加环境变量
安装结束后,会提示是否要配置环境变量,此处需注意,默认选择 no
[no]>>>
请输入 yes 后,再点击 enter。
完成之后,输入
source ~/.bashrc
成功激活 anaconda 环境,显示激活的环境名称 (base) 。
(base) chuan@localhost:$
base是默认的环境,不要去动它,不要在里面安装或者卸载包,直接新建一个属于自己的环境,在自己的环境下进行操作。
创建自己的环境命令:
conda create -n chuan2 python=3.8.10
这里我创建了一个名为chuan2的虚拟环境,指定python版本为3.8.10。这里需要注意一下,因为Ubuntu20.04对应的noetic ros1内置的python版本是3.8.10,所以我们创建虚拟环境的时候也要指定为3.8的py,可能后面在安装一些包的时候,会给python版本升级,但是只要不影响3.8就可以。
比如我在安装torch包的时候,会把我的虚拟环境的python从3.8.10升级为3.8.20,但是不会影响正常运行。
激活我自己创建的虚拟环境:
conda activate chuan2
就变成了
(chuan2) chuan@localhost:$
在chuan2环境里面安装包:
conda install 包名
需要在哪个虚拟环境里面安装包,就要激活对应的虚拟环境,然后安装即可。
其他conda命令请自行搜索查阅。
五、下载vscode
vscode作为编辑器十分方便快捷,其中有诸多插件可以自行选择安装。在这里,它可以通过连接到wsl,并且在Ubuntu系统里面运行python代码。安装教程可以参考以下文章,此处不再赘述。
链接: VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了
六、环境配置
1.插件安装
我在vscode中安装的插件,包含以下几个,能够满足日常的功能,其他的插件可以根据自己开发环境的需要进行安装。
- Chinese
- WSL
- Pylance
- Python
- Python Debugger
2.连接到wsl
在我们还没有连接到wsl时候,左下角是没有显示的,这个时候我们选择上方中间的搜索框,选择显示并运行命令>,然后选择WSL:连接到WSL,等待连接成功。
连接完成之后可以看到左下角显示WSL:Ubuntu2004,我们已经成功连接到了wsl中安装的Ubuntu2004系统。
连接成功之后,还需要在Ubuntu2004系统当中也安装对应的插件,这样才能保证正常运行。
- Chinese
- Pylance
- Python
- Python Debugger
打开你要进行工作的文件夹,选择python解释器,由于我们之前进行安装了anaconda并设置了自己的虚拟环境,我设置的虚拟环境名字为chuan2,所以我们选择自己的环境。
3.实例程序测试
接下来就可以在vscode当中进行ros的测试。
首先打开cmd命令行,运行wsl,输入roscore并运行,成功激活ros主节点。
然后新建一个python文件,命名为demo.py,代码如下:
import rospy
from std_msgs.msg import String
def talker():
rospy.init_node('talker', anonymous=True)
pub = rospy.Publisher('chatter', String, queue_size=10)
rate = rospy.Rate(10) # 10hz
while not rospy.is_shutdown():
hello_str = "Hello ROS!"
rospy.loginfo(hello_str)
pub.publish(hello_str)
rate.sleep()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
点击运行,可以在终端窗口得到以下的输出:
到此为止,所有的工作可以正常完成,实现了wsl下Ubuntu-20.04与anaconda安装配合vscode使用。
七、遇到的问题
1.mav_msgs包缺失
Ubuntu-20.04版本noetic ros1的官方已经把mav_msgs这个包删除了,需要用到的话,要自己前往github官方网站下载获取,下载链接:
链接: mav_comm
下载解压完成之后,要把他放在自己设置的工作空间下的src文件夹中。这样可以保证在编译的时候不会报错。
在vscode当中运行py代码时,为了避免vscode找不到编译生成的mav_msgs的头文件,需要在自己账户的.bashrc(用记事本打开)中添加一行代码:
source /home/chuan/catkin_ws/devel/setup.bash
其中chuan是我自己的用户名,catkin_ws是我自己的工作空间。
这样可以保证vscode能够找到对应的路径。
2.运行实例程序报错
参考文章如下:
链接: 【ROS】如何在ROS中使用anaconda虚拟环境?
链接: 【ROS】ros-noetic和anaconda联合使用【教程】
进入自己的虚拟环境,安装下列包:
pip install rospkg rospy catkin_tools
3.通信出错
在终端输入以下命令:
echo $ROS_HOSTNAME
如果发现没有任何输出,说明没有指定运行主机名。
参考第一步,同样需要在.bashrc中添加一行:
export ROS_HOSTNAME=localhost
这个的意思在自己本地电脑上运行。
4.深度学习torch安装
这个需要根据自己电脑CPU和GPU的情况,选择适合自己最好的版本和方式进行。
可以参考这个视频链接进行安装,非常详细。
链接: 最详细的 Windows 下 PyTorch 入门深度学习环境安装与配置 CPU GPU 版 | 土堆教程