我使用的是VMWARE16.0版本和Ubuntu系统20.04版本,python3.8或云服务器(版本选择可参考前者)
华为已经给出了安装的官方文档,设置 — SMARTS 2.0.0 文档,但过于简略,也没有给出gym库不兼容问题的解决方法,对于初学者很不友好,因此本文会一步一步讲解如何正确安装SMARTS平台
1.打开虚拟机,ctrl+alt+t打开终端,克隆仓库
git clone https://github.com/huawei-noah/SMARTS.git
2.进入SMARTS目录
cd SMARTS
3.克隆2.0.1版本的SMARTS会自动进入到最新的版本标签,当然可以自由选择你需要的版本,不过旧的版本会因为依赖不兼容而出现错误
4.执行安装依赖的脚本
bash utils/setup/install_deps.sh
5.创建虚拟环境后激活
6.更新pip
7.安装
到这一步时可能出现gym库的问题(如果你选择自由安装了旧的版本)
以下给出四种解决方法:
(1)更新pip、setuptools和wheel后安装gym
pip install --upgrade pip setuptools wheel
(2)直接安装兼容的gym
根据自己的错误信息,gym版本应该在0.17.3和0.19.0之间
pip install gym==0.19.0
(3)降级setuptools后安装gym
pip install setuptools==49.6.0
(4)从github仓库直接安装gym
pip install git+https://github.com/openai/gym.git@master#egg=gym
这将会从gym的GitHub仓库的master分支安装最新版本
请安装gym后继续执行安装SMARTS代码,使用默认源下载速度很慢,我没有继续使用,选择了中科大的镜像源进行下载
pip install -e '.[camera-obs,sumo,test,example]' -i https://pypi.mirrors.ustc.edu.cn/simple/
值得一提的是不知道是什么原因,此时会出现gym wheel无法创建的问题,显示似乎与pip没有关联,我选择了重新下载gym确认了版本为0.26.2,并更新了pip setuptools wheel,因为四者的版本似乎存在关联,但是仍然是错误
后面我在查看了github一些评论和华为官方文档时发现文档中给出的代码camera-obs,sumo,test,example并不全在便签1.0中(这在运行warning中可以知道),官方指南似乎是由于更新问题有出入,于是我更换为master也就是git checkout master(此时example警告),后重新运行脚本bash utils/setup/install_deps.sh,再运行pip install -e '.[camera-obs,sumo,test,example]' -i https://pypi.mirrors.ustc.edu.cn/simple/,下载完成
这一步骤我并不清楚怎么回事,如果有人知道可以在评论区留言交流
make sanity-test测试时错误,显示还有两个库要下载,pip install packge -i 科大镜像源。如果你选择安装了某些旧的版本在这一步仍可能出现不能解决的错误
测试成功
如果选择用云服务器安装则不需要镜像源,所有命令步骤如下:
git clone https://github.com/huawei-noah/SMARTS.git
cd SMARTS
bash utils/setup/install_deps.sh
python3.8 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e '.[camera-obs,sumo,test,example]' --config-settings editable_mode=strict
make sanity-test(此时缺失库)
执行pip install hydra-core
pip install gymnasium即可