Отладка Python не запускается в VS Code: «Путь Python в вашей конфигурации отладки неверен».

avatar
Andreas L.
1 июля 2021 в 16:33
758
1
0

Я попытался запустить отладку Python в VS Code в Windows 10 через F5, а также в меню отладки графического интерфейса в правом верхнем углу. Тем не менее, он всегда показывает следующее окно ошибки в правом нижнем углу с указанием "The Python path in your debug configuration is invalid.":

The Python path in your debug configuration is invalid

Я вошел в среду Python, связанную с проектом под названием "Пример":

username@hd1pcms0347 MINGW64 ~/Projects
$ ls
Example  Example-venv

Я активирую виртуальную среду (venv) следующим образом:

username@hd1pcms0347 MINGW64 ~/Projects
$ source Example-venv/Scripts/activate

(Example-venv) 
username@hd1pcms0347 MINGW64 ~/Projects

Дерево каталогов верхнего уровня проекта "Пример" выглядит следующим образом:

Example:.
├───.git
├───.vscode
├───docs
└───src
    ├───build
    ├───config
    ├───scripts
    └───tests

Сценарии Python, которые я хочу отлаживать, находятся в некоторых подкаталогах папок "scripts" и "tests".

Теперь python.exe, подключенный к текущему venv, находится здесь:

/c/Users/andreas.luckert/Projects/Merck-venv/Scripts/python.exe

Вывод which python:

(Example-venv)
username@hd1pcms0347 MINGW64 ~/Projects/Example-venv/Scripts
$ which python
/c/Users/username/Projects/Example-venv/Scripts/\Users\username\Projects\Example-venv/Scripts/python

В левом нижнем углу я выбрал правильный путь к интерпретатору Python.

Что касается глобального и локального settings.json, которые расположены по адресу C:\Users\username\AppData\Roaming\Code\User\settings.json и C:\Users\username\Projects\Example\.vscode\settings.json соответственно, они имеют одинаковое содержимое (я сохранил только записи, относящиеся к отладке и python):

{
    // * Breadcrumbs options
    "debug.allowBreakpointsEverywhere": true,
    // * JUPYTER options
    "jupyter.sendSelectionToInteractiveWindow": true,
    // NOTE on provenance: from org-mode VS Code extension docs ("too tone")
    //  * PYTHON options
    "[python]": {
        "editor.rulers": [
            80,
            120
        ],
        "editor.defaultFormatter": "ms-python.python"
    },
    // "python.defaultInterpreterPath": "${env:PYTHON_EXE_LOC}",
    "python.defaultInterpreterPath": "/c/Users/username/Projects/Example-venv/Scripts/python.exe",
    // "python.envFile": "${workspaceFolder}${pathSeparator}.vscode${pathSeparator}vscode.env",
    "python.analysis.completeFunctionParens": true,
    "python.autoComplete.addBrackets": true,
    "python.terminal.activateEnvironment": true,
    "python.terminal.executeInFileDir": false,
    "python.terminal.launchArgs": [
        "-c",
        "\"from IPython import start_ipython; start_ipython()\""
    ],
    // Possible values: "Jedi", "Pylance", "Microsoft", "None".
    "python.languageServer": "Pylance",
    "python.jediMemoryLimit": 1,
    "python.linting.enabled": true,
    "python.linting.lintOnSave": true,
    "python.linting.maxNumberOfProblems": 100,
    "python.linting.ignorePatterns": [
        ".vscode/*.py",
        "**/site-packages/**/*.py"
    ],
    "python.analysis.diagnosticSeverityOverrides": {
        "reportUnusedImport": "information",
        "reportMissingImports": "none"
    },
    "python.linting.pylintPath": "C:\\Users\\username\\Projects\\Example-venv\\Scripts\\pylint.exe",
    "python.linting.pylintEnabled": true,
    "python.linting.pylintUseMinimalCheckers": false,
    "python.analysis.useImportHeuristic": true,
    "python.formatting.provider": "yapf",
    "python.testing.autoTestDiscoverOnSaveEnabled": true,
    "python.testing.unittestArgs": [
        "-v",
        "-s",
        ".",
        "-p",
        "*test*.py"
    ],
    "python.testing.pytestArgs": [],
}

Наконец, локальный файл launch.json, расположенный по адресу C:\Users\username\Projects\Example\.vscode\launch.json, содержит следующее:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File (Integrated Terminal)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            // "python": "${workspaceFolder}${pathSeparator}.vscode${pathSeparator}vscode.env",
            "python": "/c/Users/username/Projects/Example-venv/Scripts/python.exe",
            "redirectOutput": true,
            "justMyCode": false,
            "logToFile": true,
            "stopOnEntry": false,
        },
        ...
    ]
}

Я уже перепробовал множество конфигураций, но не могу избавиться от ошибки, хотя все эти пути должны быть правильными.

Источник

Ответы (1)

avatar
Andreas L.
1 июля 2021 в 16:43
0

Помещение

"python.defaultInterpreterPath": "C:\\Users\\username\\Projects\\Example-venv\\Scripts\\python.exe"

в моих глобальных и локальных settings.json и

"python": "C:\\Users\\username\\Projects\\Example-venv\\Scripts\\python.exe"

в моем локальном launch.json проблема решена. Это, безусловно, связано с тем, что для Windows требуется обратная косая черта и, кроме того, они должны быть экранированы самими обратными косыми чертами, поэтому двойной-"".

Тем не менее, это не кажется самым элегантным решением для всей системы. Если у кого-то есть лучшая идея настройки, пожалуйста, не стесняйтесь публиковать ответ.