1. 问题描述
在使用VSCode时,经常需要在不同的Conda环境下进行Python开发。但是有时,出现无法激活Conda环境的问题,即使用命令:
conda activate environment_name
时,出现类似以下错误信息:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
这个问题在使用VSCode时尤为常见,需要解决。
2. 解决办法
2.1. 原因分析
出现这个问题,原因在于VSCode与Conda环境之间的连接配置有问题。具体来说,是VSCode的集成终端默认情况下采用的是PowerShell,而PowerShell无法直接激活Conda环境。
2.2. 解决方法
2.2.1. 方法一:启用Anaconda Powershell Prompt
可以通过启用Anaconda Powershell Prompt来解决这个问题。Anaconda Powershell Prompt是Anaconda自带的命令行工具,专门用于管理Conda环境。
具体做法如下:
进入VSCode的设置(打开命令面板(Ctrl + Shift + P),输入“settings”并选择“Open User Settings”),搜索“Terminal ? Integrated ? Shell: Windows”:
点击“Edit in settings.json”:
在打开的settings.json文件中添加以下两行代码:
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
"terminal.integrated.shellArgs.windows": ["/K", "C:\\ProgramData\\Anaconda3\\Scripts\\activate.bat C:\\ProgramData\\Anaconda3"]
其中,“C:\\ProgramData\\Anaconda3”应该改成你本地的Anaconda安装路径。
保存并关闭settings.json文件,重新打开集成终端,应该就可以正常激活Conda环境了。
2.2.2. 方法二:更换默认命令行工具
另外一种解决办法是更换VSCode集成终端使用的默认命令行工具。可以使用比较流行的命令行工具如Cmder或Git Bash来替代PowerShell。
具体做法如下:
安装Cmder或Git Bash。
打开VSCode的设置,搜索“Terminal ? Integrated ? Shell: Windows”:
点击“Edit in settings.json”:
在打开的settings.json文件中添加以下配置,例如使用Cmder的话:
"terminal.integrated.shell.windows": "C:\\Program Files\\Cmder\\Cmder.exe",
"terminal.integrated.shellArgs.windows": ["/START", "cmd.exe", "/k", "C:\\ProgramData\\Anaconda3\\Scripts\\activate.bat C:\\ProgramData\\Anaconda3"]
其中,“C:\\Program Files\\Cmder\\Cmder.exe”应该改成你本地的Cmder安装路径,“C:\\ProgramData\\Anaconda3”应该改成你本地的Anaconda安装路径。
保存并关闭settings.json文件,重新打开集成终端,应该就可以正常激活Conda环境了。