如何解决VSCode启动过多conda实例导致CPU占用过高问题
问题诱发原因
闲置状态下多conda实例占满CPU,是VSCode Python、Jupyter扩展的默认探测逻辑叠加旧版本bug导致的,具体触发点:
- Python扩展默认开启全局conda环境递归扫描,会遍历所有配置过的conda存储路径查询环境元数据,每查询一个路径就拉起一个独立conda进程,本地conda环境多、存储路径分散时很容易同时拉起多个进程
- 打开ipynb文件时,Jupyter扩展会并行触发内核探测,查询所有conda环境内的ipykernel安装状态,和Python扩展的扫描动作叠加后,conda进程数量会直接翻倍
- 2023年之前发布的Python、Jupyter扩展存在进程回收bug,conda查询动作超时后不会自动终止对应进程,导致进程残留持续占CPU
- 开启多根工作区、工作区下有多个独立Python项目配置时,每个工作区条目会单独触发一轮全量环境扫描,进一步推高conda进程数量
解决方法
- 先把VSCode里的Python、Jupyter扩展升级到最新版,修复已知的进程残留bug。
- 按
Ctrl+,打开设置面板,修改以下基础配置:- 找到
Python: Conda Path项,填入本地conda可执行文件的绝对路径,避免扩展反复搜索conda本体位置 - 清空
Python: Auto Complete Extra Paths、Python: Analysis: Extra Paths里的非必要路径,缩小扫描范围 - 关闭
Python: Environment Monitor开关,禁止扩展后台轮询检测环境变更 - 将
Jupyter: Kernel Picker Type设为Only Allowed Kernels,在Jupyter: Kernels Denylist里添加所有不会用来跑notebook的conda环境路径,禁止扩展扫描这些环境
- 找到
- 按
Ctrl+Shift+P调出命令面板,输入Preferences: Open User Settings (JSON)打开用户配置文件,添加以下配置,把路径替换成你本地常用conda环境的实际路径:
{ // 固定默认Python解释器路径 "python.defaultInterpreterPath": "C:\\Users\\你的用户名\\miniconda3\\envs\\常用环境名\\python.exe", // 关闭终端自动激活conda环境的探测逻辑 "python.terminal.activateEnvironment": false, // 禁止扩展自动检测新的Python/conda安装 "python.disableInstallationCheck": true, // 禁止Jupyter服务自动启动 "jupyter.disableJupyterAutoStart": true, // 限制Jupyter仅识别指定内核 "jupyter.kernels.filter": [ { "path": "C:\\Users\\你的用户名\\miniconda3\\envs\\常用环境名\\python.exe", "type": "pythonEnvironment" } ] }
- 打开ipynb文件后,手动在右上角内核选择器里选定要用的conda内核,后续扩展不会再反复拉起conda进程探测其他内核。
配置完重启VSCode即可生效,后台只会保留1个和当前选定解释器/内核对应的conda进程,CPU占用会回落到正常水平。
单notebook窗口多conda进程的任务管理器状态参考:
内容的提问来源于stack exchange,提问作者Kyle
相关产品推荐
相关产品推荐

