Skip to content

so文件类库未找到

在conda环境中运行python程序时,尤其是在具身智能环境中,可能会遇到so文件类库未找到的错误。

log
// 部分错误信息
......
  File "/root/gpufree-data/envs/env_isaaclab/lib/python3.10/site-packages/isaacsim/exts/isaacsim.core.utils/isaacsim/core/utils/torch/transformations.py", line 47, in get_local_from_world
    local_transform = torch.linalg.solve(
RuntimeError: Error in dlopen: libtorch_cuda_linalg.so: cannot open shared object file: No such file or directory

如果是已经完成环境安装,仍然遇到so文件类库未找到的错误,可能是因为环境变量未配置正确。

首先查找so文件类库的位置。

bash
# 全盘查找so文件
# 将your_file_name替换为so文件类库的名称
# 建议模糊查找,例如lib_torch_cuda_linalg.so缺失,查找lib_torch_cuda_linalg*
sudo find / -type f -name "your_file_name" 2>/dev/null

一般会在虚拟环境的conda目录下找到so文件类库。例如:

bash
# 本段内容不是用来复制的,要注意具体的文件路径
sudo find / -type f -name "lib_torch_cuda_linalg*" 2>/dev/null
>>> /root/gpufree-data/envs/env_isaaclab/lib/python3.10/site-packages/torch/lib/libtorch_cuda_linalg.so
# 可以确认so文件类库存在,将他的上一级目录,配置到LD_LIBRARY_PATH环境变量中
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/gpufree-data/envs/env_isaaclab/lib/python3.10/site-packages/torch/lib" >> ~/.bashrc
source ~/.bashrc

重新执行python程序,即可正常运行。