You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode(WSL+venv)调试test_abc.py遇ModuleNotFoundError求助

解决VSCode(WSL+venv)调试时ModuleNotFound错误的方法

问题背景

调试tests/graphql/test_abc.py时,from server.config import settings行触发ModuleNotFoundError;VSCode测试扩展可正常运行,但Run and Debug无法访问上层目录;给launch.json添加"env": { "PYTHONPATH": "${workspaceRoot}" }后,调试无任何输出或错误。项目结构如下:

main folder/
├─ server/
│  └─ config.py
└─ tests/
   └─ graphql/
      └─ test_abc.py

可行解决方案

1. 修正launch.json的PYTHONPATH配置

${workspaceRoot}是旧版变量,WSL环境下建议改用${workspaceFolder},同时明确指定venv解释器路径。更新后的launch.json:

{
  "version": "0.2.0",
  "configurations": [
      {
          "name": "Python: Current File (WSL)",
          "type": "python",
          "request": "launch",
          "program": "${file}",
          "cwd": "${workspaceFolder}",
          "console": "integratedTerminal",
          "justMyCode": true,
          "env": {
              "PYTHONPATH": "${workspaceFolder}"
          },
          "python": "${workspaceFolder}/venv/bin/python"
      }
  ]
}

如果配置后仍无输出,检查VSCode左下角状态栏是否已切换到WSL中venv的Python解释器。

2. 在测试文件中手动添加项目根路径

如果环境变量配置不生效,可在test_abc.py开头加入代码,手动将项目根目录纳入Python搜索路径:

import sys
from pathlib import Path

# 向上三层路径定位到main folder
project_root = Path(__file__).parent.parent.parent
sys.path.append(str(project_root))

from server.config import settings
# 后续测试代码...

3. 在venv激活脚本中配置PYTHONPATH

编辑WSL中venv的激活脚本venv/bin/activate,在末尾添加以下内容,确保每次激活环境时自动设置路径:

export PYTHONPATH="/实际路径/main folder"

替换/实际路径/main folder为项目根目录的绝对路径(可在main folder下执行pwd命令获取)。

4. 确认VSCode解释器关联正确

点击VSCode左下角状态栏的Python版本,选择Enter interpreter path,导航到main folder/venv/bin/python,确保使用venv内的解释器。

内容的提问来源于stack exchange,提问作者Aidos Kenessov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 12:05:20