使用WSL2 Ubuntu20.04.6 LTS 安装Isaac gym
文章目录
- 使用WSL2 Ubuntu20.04.6 LTS 安装Isaac gym
- 安装Isaac gym:
- 报错解决
- 报错1:运行报错:“ImportError: libpython3.8.so.1.0/ libpython3.7.so.1.0: cannot open shared object file: No such file or directory”
- 报错二:[Error] [carb] Failed to acquire interface: [carb::gym::Gym v0.1], by client: carb.gym.python.gym_38/gym_37 (plugin name: (null))
- 报错三:Warning: failed to preload CUDA lib internal error : libcuda.so!
- 报错四:Segmentation fault (core dumped)
- 题外话
首先声明:本人历时三周,从最开始使用的windows+WSL2 Ubuntu20.04.6安装Isaac gym,出现大量报错,同时因为nvidia工程师在2021回答WSL不支持Isaac gym,遂安装原生Ubuntu系统安装Isaac gym,同样遇到大量报错,同时因为种种原因,手边只剩一台windows可以进行使用,遂又回到windows+WSL2 安装isaac gym,最后在google中疯狂搜索,最终成功安装。 windows+WSL2 安装isaac gym是可行的!!!!
可行归可行,本人非常不建议使用WSL2安装isaac gym,强烈建议使用ubuntu,wsl对显卡的调度能力太差了,加之各种未知bug,真的是自己给自己找罪受!!!!(本人已经跑路)
本人发现现在有关isaac gym安装的相关中文文章巨少,同时外网上相关内容多以问题贴的形式存在,解决办法藏在各个不同的帖子中(甚至不是有关isaac gym的帖子),于是写此文章来梳理总结我所遇到的各种问题和解决方案(估计没有人比人遇到的问题还多了,从来没有配环境配三周的)
本文大部分针对wsl安装isaac gym可能会产生的错误,具体python环境/python 库与版本 库与库等问题请移步其他帖子
展示一下运行成果
注意!!!WSL中不能安装NVIDIA的Linux驱动,要安装NVIDIA专门给WSL准备的驱动!!!!巨坑!!!以下是官方的解释:
安装Isaac gym:
按照这个大佬的博客可以完全不报错的下载Isaac gym,创建conda环境
https://blog.csdn.net/m0_37802038/article/details/134629194
报错解决
报错1:运行报错:“ImportError: libpython3.8.so.1.0/ libpython3.7.so.1.0: cannot open shared object file: No such file or directory”
(借用大佬xxkinger的图)
这个是应为系统没有识别到libpython3.8.so.1.0这个文件(libpython3.7.so.1.0同理),我这有个更简单的方法:
直接搜索libpython3.8.so.1.0文件
然后把文件复制到/usr/lib/
sudo cp /usr/lib/x86_64-linux-gnu/libpython3.7m.so.1.0 /usr/lib/
即可,使用 大佬xxkinger的命令可能会因为windows下有太多环境而出现非常多的文件(不推荐)
find / -name "*ibpython3.7m.so.1.0*" 2>/dev/null
报错二:[Error] [carb] Failed to acquire interface: [carb::gym::Gym v0.1], by client: carb.gym.python.gym_38/gym_37 (plugin name: (null))
(巨长的报错,一片红)
原因:未安装Nvidia显卡驱动(也没安装cuda)
请按照官方说明安装驱动:https://docs.nvidia.com/cuda/wsl-user-guide/index.html
注意!!!WSL中不能安装NVIDIA的Linux驱动,要安装NVIDIA专门给WSL准备的驱动!!!!巨坑!!!
建议安装和windows相同版本的cuda Toolkit
可以看到我的是12.3.1
所以我安装12.3.1的cuda Toolkit,直接按官方命令即可
Tip:其中文件如果用wget下载会断的话可以直接把wget后面的链接复制到浏览器中直接下载文件
安装好后就可以使用 nvcc --version 在Ubuntu中进行查看
nvcc --version
可以看到WSL成功识别了cuda
报错三:Warning: failed to preload CUDA lib internal error : libcuda.so!
原因:未使用cuda
解决方法:先查找libcuda.so
which libcuda.so
之后添加路径export LD_LIBRARY_PATH=LD_LIBRARY_PATH:path
例如:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/wsl/lib/
然后就成功了
注意单次输入为临时设置,下次打开wsl时还要在输入一次
可以将其添加到~/.bashrc文件中永久设置,可以自行百度
报错四:Segmentation fault (core dumped)
跑着跑着崩了,或者isaac黑屏,有显示错误的,等等等和显示有关的问题,统统都是因为vulkan这个GUI图形显示框架!!!!!!
第一步:查看vulkan:(由于Ubuntu20.04.6自带的vulkan是完整的,所以只要下载一个工具就可以查看了)
sudo apt install vulkan-tools
然后就可以进行查看:
vulkaninfo
第二步:发现vulkan中没有nvidia的显卡,只有llvmpipe(cpu的显示设备)
进入/usr/share/vulkan/icd.d
查看文件信息
(之前是只有三个文件的,没图了)
发现没有 nvidia_icd.json 文件,nvidia论坛的大佬说要使用下面的命令指定使用nvidia_icd.json 来指定vulkan使用GPU设备
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
如果你的文件中有nvidia_icd.json ,你可以尝试以上命令
但是我的文件夹没有,你可以使用下面的方法
解决问题的方法非常非常非常简单:
sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt update
sudo apt upgrade
就这三行,然后就解决了!!!!
详情可以看:https://github.com/microsoft/wslg/issues/40#issuecomment-2037539322
题外话
说下我的经历:
我在这个过程中无数次想要放弃,但每次都可以有一点进展,最重要的一点就是去google查问题!!!国内还是缺乏类似nvidia的论坛和stackoverflow类似的网站!!我的痛苦旅程终于结束了,祝君好运!!