在不同的终端中同时激活不同的虚拟环境,并且每个环境需要使用不同版本的 CUDA,可以在每个终端中分别设置 LD_LIBRARY_PATH
。
打开第一个终端,激活第一个虚拟环境,并设置 LD_LIBRARY_PATH
指向第一个 CUDA 版本:
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
source activate myenv1
然后,打开第二个终端,激活第二个虚拟环境,并设置 LD_LIBRARY_PATH
指向第二个 CUDA 版本:
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH
source activate myenv2
这样,每个终端的虚拟环境都会使用其对应的 CUDA 版本。
软链接的情况
在上述情况下,/usr/local/cuda
的软链接可能不再重要,因为你在每个虚拟环境中都明确设置了 LD_LIBRARY_PATH
来指向正确的 CUDA 版本。
/usr/local/cuda
通常被用作默认的 CUDA 安装路径,许多程序和库可能会使用它来查找 CUDA。然而,当你明确设置了 LD_LIBRARY_PATH
,系统会首先在 LD_LIBRARY_PATH
指定的路径中查找库,因此,你的程序应该能找到正确版本的 CUDA。
然而,如果你有其他程序或库依赖于 /usr/local/cuda
软链接指向的 CUDA 版本,那么你可能需要考虑这个问题。在这种情况下,你可能需要确保这些程序或库也能在你的虚拟环境中正确运行,或者你可能需要在不使用虚拟环境时恢复 /usr/local/cuda
的软链接。