При запуске сеанса отладки 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"
}
]
}
Код: Выделить всё
{
"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
Может ли этот пробел в начале препятствовать автоматическому выполнению команды, или это просто симптом того, как VSCode отправляет команду на терминал?
Вопрос
Почему команда запуска отладки не работает выполняется автоматически, когда предыдущие команды инициализации оболочки выполняются нормально? Связано ли это с тем, как VSCode объединяет команды во вложенных оболочках, или мне не хватает конфигурации, обеспечивающей последовательное выполнение всех трех команд?
Кажется, что команды отправляются на терминал, но на самом деле выполняются только первые две. Как правильно настроить VSCode для выполнения команды отладки в терминале, который уже выполнил команды инициализации?
Подробнее здесь: https://stackoverflow.com/questions/797 ... l-after-sh