VSCode运行测试时因虚拟环境激活错误导致30秒延迟
VSCode运行Python测试前30秒延迟(虚拟环境激活超时)
问题场景
用venv创建的.venv虚拟环境,终端中可正常激活,但通过VSCode UI运行测试时,每次启动前都会出现30秒延迟,输出面板显示VSCode尝试激活虚拟环境的命令因超时被SIGTERM终止,错误日志如下:
2023-06-25 11:57:42.306 [info] > . ./.venv/bin/activate && echo 'e8b39361-0157-4923-80e1-22d70d46dee6' && python ~/.vscode/extensions/ms-python.python-2023.8.0/pythonFiles/printEnvVariables.py 2023-06-25 11:57:42.306 [info] shell: bash 2023-06-25 11:58:12.313 [error] getActivatedEnvironmentVariables [Error: Command failed: . /Users/mypath/.venv/bin/activate && echo 'e8b39361-0157-4923-80e1-22d70d46dee6' && python /Users/me/.vscode/extensions/ms-python.python-2023.8.0/pythonFiles/printEnvVariables.py at ChildProcess.exithandler (node:child_process:409:12) at ChildProcess.emit (node:events:513:28) at maybeClose (node:internal/child_process:1121:16) at ChildProcess._handle.onexit (node:internal/child_process:304:5)] { code: null, killed: true, signal: 'SIGTERM', cmd: ". /Users/mypath/.venv/bin/activate && echo 'e8b39361-0157-4923-80e1-22d70d46dee6' && python /Users/me/.vscode/extensions/ms-python.python-2023.8.0/pythonFiles/printEnvVariables.py" } 2023-06-25 11:58:12.354 [info] DAP Server launched with command: /Users/mypath/.venv/bin/python /Users/me/.vscode/extensions/ms-python.python-2023.8.0/pythonFiles/lib/python/debugpy/adapter
解决方案
确认虚拟环境解释器配置
点击VSCode左下角状态栏的Python解释器选择器,重新选中.venv/bin/python(Mac/Linux),确保VSCode直接关联虚拟环境的解释器,而非依赖激活脚本。也可在工作区settings.json中手动指定:{ "python.pythonPath": "./.venv/bin/python" }修复激活脚本权限与兼容性
执行命令确保激活脚本可执行:chmod +x ./.venv/bin/activate打开
activate脚本,确认首行的#!/bin/bash与VSCode使用的shell一致(日志显示用的是bash),避免因shell不兼容导致执行卡住。禁用自动激活虚拟环境
在VSCode设置中搜索python.terminal.activateEnvironment,将其设置为false。此时VSCode会直接使用指定的解释器路径运行测试,跳过激活脚本的执行步骤,绕开超时问题。更新Python插件
当前使用的ms-python.python-2023.8.0版本存在激活环境的已知bug,更新到最新版本的Python插件,多数情况下能修复这类超时问题。排查shell配置文件耗时操作
检查~/.bashrc或~/.zshrc等shell配置文件,若存在耗时的网络请求、大量别名加载或其他阻塞操作,会导致VSCode启动子shell时卡住。暂时注释掉非必要的耗时语句,测试延迟是否消失。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

