起因
因为远程服务器是多人共同使用,因此为了方便管理,在创建虚拟环境时不使用默认路径,指定了环境安装路径:
conda create --prefix=/home/my_env_path
平时调用环境指定路径就好:
conda activate /home/my_env_path
最近服务器出现故障,经过重启之后发现所在环境都还存在,虽然能够直接指定路径 activate 虚拟环境,但是 conda env list 无法找到对应路径。这也导致在 vscode 上无法选择需要的路径来对代码 debug。
就算 Enter interpreter path 找到路径也无法使用,它只会 conda activate my_env_path 但这样缺少前置目录没法正常 activate,这就很难受了。
解决办法
网上找了很多方法比如在 conda config 里添加目录等方法:
conda config --show envs_dirs # 查看环境目录
conda config --show # 查看 conda 配置
conda config --append envs_dirs /home/my_env_path # 添加环境目录
conda config --remove envs_dirs /home/my_env_path # 删除环境目录
但我在另一台没重启过的服务器上发现环境目录和故障的服务器是一样的,所以问题不是在这里。
然后在找的过程中发现一个帖子有人提到 conda 的环境路径保存在 ~/.conda/environment.txt 文件下,经过验证发现确实在故障的服务器上该 txt 文件里没有所需环境的路径,所以打开该文件:
vi ~/.conda/environment.txt
在最后添加自己的环境路径:
esc + :wq 保存后回到 vscode,(打开 interpreter 查找)找到对应环境的 python 包就可以在创建新终端时自动 activate 环境也可以正常 debug 了。
在这里插入图片描述
如果刷新后还找不到,可以点 Enter interpreter path 手动查找对应虚拟环境下的 /bin/pyhton 文件即可。