安装依赖
安装过程与安装MMTracking的依赖一样,参考我的另一篇文章MOT之MMTracking框架部署ByteTrack、DeepSort(血泪教训成功版)
Bot-SORT安装到最后一步报错
执行python setup.py develop时报错
Traceback (most recent call last):
File "setup.py", line 8, in <module>
import torch
File "/home/yilv/miniconda3/envs/bot-sort/lib/python3.7/site-packages/torch/__init__.py", line 198, in <module>
_load_global_deps()
File "/home/yilv/miniconda3/envs/bot-sort/lib/python3.7/site-packages/torch/__init__.py", line 151, in _load_global_deps
ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL)
File "/home/yilv/miniconda3/envs/bot-sort/lib/python3.7/ctypes/__init__.py", line 364, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /home/yilv/miniconda3/envs/bot-sort/lib/python3.7/site-packages/torch/lib/../../../../libcublas.so.11: undefined symbol: cublasLt_for_cublas_HSS, version libcublasLt.so.11
解决办法一:pip uninstall nvidia_cublas_cu11
原因: Like eval said, it is because pytorch1.13 automatically install nvidia_cublas_cu11, nvidia_cuda_nvrtc_cu11, nvidia_cuda_runtime_cu11 and nvidia_cudnn_cu11. While I have my own CUDA toolKit already installed, I have the same problem.
In my case, I used pip uninstall nvidia_cublas_cu11 and solved the problem. I think the PyTorch team should solve this issue, since users often have their own CUDAtoolkit installed.
引自: stackoverflow.com/questions/7…
结果我当前conda环境里并没有安装这个组件,但是
看到so引用的路径有点问题
ldd /home/yilv/miniconda3/envs/bot-sort/lib/libcublas.so.11
linux-vdso.so.1 (0x00007ffcd0dc4000)
libcublasLt.so.11 => /usr/local/cuda-11.5/lib64/libcublasLt.so.11 (0x00007fe9e9e00000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fea0422c000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fea04227000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fea04222000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fea04139000)
libgcc_s.so.1 => /home/yilv/miniconda3/envs/bot-sort/lib/libgcc_s.so.1 (0x00007fea0410c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe9e9bd7000)
/lib64/ld-linux-x86-64.so.2 (0x00007fea04240000)
于是就
解决办法二:修改当前环境的变量
在 Conda 中为特定环境设置 LD_LIBRARY_PATH 的方式如下:
-
首先,激活你想要修改的环境
conda activate myEnv -
编辑
conda环境配置文件。在MyEnv环境目录下,找到etc/conda/activate.d文件夹,并在其中创建一个新的脚本文件,例如命名为set_ld_lib_path.sh。 -
在新创建的脚本文件中,添加以下内容来设置
LD_LIBRARY_PATH环境变量:
#!/bin/bash
export LD_LIBRARY_PATH=/path/to/your/library:$LD_LIBRARY_PATH
请将 /path/to/your/library 替换为你的实际库路径。
-
保存脚本文件,然后关闭编辑器。
-
为了让这个新的环境配置生效,你需要重启你的终端或命令提示符窗口。
-
现在,你可以再次激活你的环境,并查看
LD_LIBRARY_PATH是否已经正确设置了:
conda activate MyEnv
echo $LD_LIBRARY_PATH
你应该能看到你刚刚设置的库路径排在最前面。
结果还是不行,那我只能
解决办法三:卸载整个torch
因为这个模块不是单独安装的,而是torch内置的,而且我这个环境是克隆的另外一个环境,不知道有没有关系。
pip uninstall torch cudatoolkit torchvision
再重新安装torch(安装方法见MOT之MMTracking框架部署ByteTrack、DeepSort(血泪教训成功版))
再执行python setup.py develop就成功了。