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

在Visual Studio Code中配置含独立源码与测试目录的Python项目,以支持IntelliSense、运行及测试全功能

在Visual Studio Code中配置含独立源码与测试目录的Python项目,以支持IntelliSense、运行及测试全功能

我之前也碰到过和你一模一样的项目结构问题,按照下面的步骤配置,就能让VS Code完美识别src作为源码根目录,同时搞定IntelliSense、代码运行和测试发现/运行的问题:

首先先明确下你的项目结构(方便后续对照):

project/
├── src/
│   └── my_package/
│       ├── __init__.py
│       └── code_file.py
└── tests/
    ├── __init__.py
    └── my_package/
        ├── __init__.py
        └── code_file_test.py

1. 配置IntelliSense识别源码根

要让VS Code的IntelliSense正确找到src下的模块,需要修改工作区的设置:

  • 按下Ctrl+,打开设置面板,点击右上角的**打开设置(JSON)**按钮,进入工作区配置文件
  • 添加以下配置:
{
    "python.analysis.extraPaths": [
        "${workspaceFolder}/src"
    ],
    // 如果使用虚拟环境,替换成你的虚拟环境Python路径
    "python.pythonPath": "${workspaceFolder}/.venv/bin/python"
}

这个配置会告诉VS Code的Python分析器,把src目录加入到模块搜索路径中,这样不管是在src里写代码,还是在tests里导入my_package的模块,IntelliSense都能正常提示,不会出现红色波浪线报错。

2. 配置代码运行环境

直接运行代码时,需要让Python解释器能找到src下的模块,我们可以通过配置launch.json来实现:

  • 点击左侧的运行和调试图标(或按下Ctrl+Shift+D),点击创建launch.json文件,选择Python环境
  • 将配置修改为:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 运行当前脚本",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "cwd": "${workspaceFolder}",
            "env": {"PYTHONPATH": "${workspaceFolder}/src"},
            "console": "integratedTerminal"
        },
        {
            "name": "Python: 运行当前测试",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "cwd": "${workspaceFolder}",
            "env": {"PYTHONPATH": "${workspaceFolder}/src"},
            "console": "integratedTerminal"
        }
    ]
}

这里通过env设置了PYTHONPATH环境变量,把src目录加入进去,这样运行代码或测试时,Python解释器就能正确导入my_package模块了。

3. 配置测试发现与运行

以常用的pytest为例,配置VS Code自动发现并运行tests目录下的测试:

  • 点击左侧的测试图标(或按下Ctrl+Shift+T),选择pytest作为测试框架
  • 当VS Code提示输入测试路径时,输入tests即可
  • 也可以在工作区设置里补充以下配置,确保测试运行正常:
{
    "python.testing.pytestArgs": [
        "tests"
    ],
    "python.testing.unittestEnabled": false,
    "python.testing.pytestEnabled": true,
    "python.testing.cwd": "${workspaceFolder}",
    "python.testing.env": {"PYTHONPATH": "${workspaceFolder}/src"}
}

这个配置会告诉VS Code用pytest来运行测试,并且指定测试目录为tests,同时设置PYTHONPATH让测试代码能导入src里的模块。

最后几个小提示

  • 如果你用了虚拟环境,一定要确认VS Code左下角状态栏显示的是你的项目虚拟环境,不然配置可能不生效
  • 配置完成后,建议按下Ctrl+Shift+P,选择重新加载窗口,让所有配置生效
  • 如果还是有问题,可以检查一下__init__.py文件是否都正确放置(你的项目结构里已经有了,这点没问题)

备注:内容来源于stack exchange,提问作者Danny Varod

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:49:32