VSCode中Conda环境报ModuleNotFoundError,Anaconda Prompt启动则正常
问题核心
直接启动VSCode时,集成终端未加载conda虚拟环境的完整上下文——哪怕你在VSCode中选了venv_Flask作为解释器,终端仍可能使用系统或其他环境的Python路径,导致找不到已安装的Flask包。而通过激活环境后的Anaconda Prompt用code命令启动VSCode时,终端会继承当前激活的环境上下文,因此能正常识别包。
解决步骤
匹配VSCode终端与Anaconda Prompt的shell
打开VSCode设置(快捷键Ctrl+,),搜索terminal.integrated.defaultProfile.windows(Windows系统),选择和Anaconda Prompt一致的shell(比如Command Prompt或PowerShell),确保终端能正确加载conda的环境变量。开启终端自动激活虚拟环境
在VSCode设置中搜索python.terminal.activateEnvironment,勾选该选项。这样当你选中venv_Flask作为解释器时,集成终端会自动激活该虚拟环境,确保运行脚本时用的是环境内的Python和已安装的包。手动验证终端与解释器一致性
直接打开VSCode并选中venv_Flask解释器后,打开集成终端执行以下命令:# Windows系统 where python pip list # Mac/Linux系统 which python pip list如果输出的Python路径不是
venv_Flask环境内的路径,或者pip list里没有Flask,手动执行conda activate venv_Flask激活环境后再运行脚本。重置项目VSCode配置(可选)
若上述方法无效,关闭VSCode,删除项目目录下的.vscode文件夹(仅清除项目级配置,不影响全局设置),重新打开VSCode并重新选择venv_Flask作为解释器。
内容的提问来源于stack exchange,提问作者Michael Pariaszevski

