Команда запуска отладки VSCode не выполняется автоматически в терминале после команд инициализации оболочкиPython

Программы на Python
Anonymous
Команда запуска отладки VSCode не выполняется автоматически в терминале после команд инициализации оболочки

Сообщение Anonymous »

Проблема
При запуске сеанса отладки Python в VSCode с помощью debugpy я вижу три команды, появляющиеся во встроенном терминале:
  • Код: Выделить всё

    devbox shell
    — выполняется автоматически ✓
  • Код: Выделить всё

    source /path/to/project/.venv/bin/activate
    — выполняется автоматически ✓
  • Код: Выделить всё

    /usr/bin/env /path/to/project/.venv/bin/python /path/to/debugpy/launcher 
     -- -m mymodule 
    — НЕ выполняется автоматически ✗
Первые две команды выполняются нормально, но третья команда (фактическая программа запуска отладки) просто появляется в терминале, не выполняясь, что приводит к ошибке «Истекло время ожидания подключения средства запуска». Мне нужно вручную скопировать и вставить команду, чтобы запустить ее.
Среда
  • ОС: macOS (Apple Silicon)
  • Версия VSCode: Последняя
  • Расширение Python: Последняя
  • Версия Python: 3.12
  • Менеджер среды: devbox + venv
Конфигурация
launch.json:

Код: Выделить всё

{
"version": "0.2.0",
"configurations": [
{
"name": "Run worker",
"type": "debugpy",
"request": "launch",
"preLaunchTask": "Start dev cluster",
"module": "mymodule",
"args": ["worker", "--task-queue", "${input:task-queue}"],
"env": {
"STAGE": "${input:stage}"
},
"console": "integratedTerminal"
}
]
}
settings.json:

Код: Выделить всё

{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"python.terminal.activateEnvironment": false,
"terminal.integrated.automationProfile.osx": {
"path": "/opt/homebrew/bin/zsh",
"args": ["-l"]
}
}
Что я пробовал
  • ✗ Добавлен «консоль»: «integratedTerminal» в конфигурацию запуска
  • ✗ Установите «python.terminal.activateEnvironment»: false
  • ✗ Настроен профиль автоматизации терминала с входом в систему оболочки
Ни один из этих способов не решил проблему.
Дополнительное наблюдение
Я заметил, что в выводе терминала третья команда (программа запуска отладки) имеет перед собой пробел, а первые две команды — нет:

Код: Выделить всё

devbox shell
source /path/to/.venv/bin/activate
/usr/bin/env /path/to/.venv/bin/python /path/to/debugpy/launcher 
 -- -m mymodule 
Обратите внимание на пробел перед третьей командой ( /usr/bin/env). Я не уверен, связано ли это с проблемой выполнения, но стоит отметить, что это единственная команда, которая не может быть выполнена автоматически.
Может ли этот пробел в начале препятствовать автоматическому выполнению команды, или это просто симптом того, как VSCode отправляет команду на терминал?
Вопрос
Почему команда запуска отладки не работает выполняется автоматически, когда предыдущие команды инициализации оболочки выполняются нормально? Связано ли это с тем, как VSCode объединяет команды во вложенных оболочках, или мне не хватает конфигурации, обеспечивающей последовательное выполнение всех трех команд?
Кажется, что команды отправляются на терминал, но на самом деле выполняются только первые две. Как правильно настроить VSCode для выполнения команды отладки в терминале, который уже выполнил команды инициализации?

Подробнее здесь: https://stackoverflow.com/questions/797 ... l-after-sh

Вернуться в «Python»