microsoft / microsoft/vscode-python-debugger

Debug launch configuration doesn't override Python interpreter

Ouverte
#873 1 commentaire 1 réaction 1 personne assignée Voir sur GitHub

@eleanorjboyd y travaille déjà.

Depuis le 10/11/2025.

triage-needed
Langage dominant
TypeScript
Étoiles
181
Forks
126
Merge moyen
2 j 3 h
PR mergées (30 j)
3

Description

Does this issue occur when all extensions are disabled?: Yes

  • VS Code Version: 1.105.1 (Universal)
  • OS Version: macOS 26.0.1

Issue:

I am using a multi-root workspace for my monorepo. I am using a monorepo.code-workspace file that roughly looks like the following:

{
  "folders": [
    {
      "name": "root",
      "path": "."
    },
    {
      "name": "service_A",
      "path": "service_A"
    },
    {
      "name": "service_B",
      "path": "service_B"
    },
    {
      "name": "company_python",
      "path": "company_python"
    },
  ],
  "launch": {
    "version": "0.2.0",
    "configurations": [
      {
        "name": "service_A",
        "consoleName": "service_A",
        "type": "debugpy",
        "request": "launch",
        "module": "uvicorn",
        "args": [
          "app.main:app",
          "--reload",
          "--reload-dir",
          "${workspaceFolder:service_A}",
          "--reload-dir",
          "${workspaceFolder:root}/company_python",
        ],
        "justMyCode": true,
        "console": "integratedTerminal",
        "env": {
          "POETRY_ACTIVE": "1",
          "PYTHONPATH": "${workspaceFolder:service_A}:${workspaceFolder:root}/company_python"
        },
        "cwd": "${workspaceFolder:service_A}",
        "python": "${workspaceFolder:service_A}/.venv/bin/python",
        "windows": {
          "python": "${workspaceFolder:service_A}\\.venv\\Scripts\\python.exe"
        }
      },
      {
        "name": "service_B",
        "consoleName": "service_B",
        "type": "debugpy",
        "request": "launch",
        "module": "uvicorn",
        "args": [
          "app.main:app",
          "--port",
          "8001",
          "--reload",
          "--reload-dir",
          "${workspaceFolder:service_B}",
          "--reload-dir",
          "${workspaceFolder:root}/company_python",
        ],
        "justMyCode": true,
        "console": "integratedTerminal",
        "env": {
          "POETRY_ACTIVE": "1",
          "PYTHONPATH": "${workspaceFolder:service_B}:${workspaceFolder:root}/company_python"
        },
        "cwd": "${workspaceFolder:service_B}",
        "python": "${workspaceFolder:service_B}/.venv/bin/python",
        "windows": {
          "python": "${workspaceFolder:service_B}\\.venv\\Scripts\\python.exe"
        }
      }
    ]
  },
  "settings": {
    "files.exclude": {
      "service_A": true,
      "service_B": true
      // "company_python": true,
    },
    "search.exclude": {
      "service_A": true,
      "service_B": true
      // "company_python": true,
    },
    "python.analysis.extraPaths": [
      "${workspaceFolder:root}/company_python"
    ],
    "python.autoComplete.extraPaths": [
      "${workspaceFolder:root}/company_python"
    ]
  }
}

The lines that are important are:

"python": "${workspaceFolder:service_A}/.venv/bin/python",

When I hover over this, it hints at the following:
Image

However, when I launch the debug configuration for either service_A or service_B, it does not use the path I configured in monorepo.code-workspace. Instead, VS Code look at which file is currently open, and checks which interpreter is configured 'locally'.

Image

Even when I clear all settings regarding the interpreters, it still does not use the interpreter that I have configured in the debug launch config.

Steps to Reproduce:

  1. Use the monorepo.code-workspace that I provided above.
  2. Create a .venv for both service_A and service_B.
  3. To make sure this bug occurs, select the correct interpreters for both folders using the command Python: Select Interpreter as shown in the screenshot above.
  4. Have a .py file open that lives in the folder of service_B.
  5. Start the debug configuration for service_A.
  6. Check the integrated terminal to see that the debugger looks at the .venv of service_B.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.