#python #django #visual-studio-code #vscode-settings #vscode-debugger
#python #django #visual-studio-code #vscode-отладчик
Вопрос:
Недавно я начал использовать VSCode для отладки с Django, и это сработало довольно хорошо.
Я использую систему для управления переменными среды, однако для этого требуется использовать ее ключевое слово first ( keys python manage.py runserver
)
Отладка отлично работает для запуска стандартной установки Django, но, похоже, я не могу заставить отладчик python выполнить приведенное выше утверждение.
В моем launch.json
я попробовал несколько конфигураций, таких как следующие:
# launch.json
{
"name": "Python: Django",
"type": "python",
"request": "launch",
"preLaunchTask": "keys-run",
"program": "${workspaceFolder}/manage.py",
"args": [
"runserver"
],
"django": true
}
# tasks.json
{
"type": "shell",
"label": "keys-run",
"command": "keys"
}
Я тоже пробовал это:
{
"name": "Python: Django",
"type": "python",
"request": "launch",
"program": "keys",
"args": [
"python", "manage.py", "runserver"
],
"django": true
}
Вторая конфигурация выдает мне сообщение об ошибке, что такого файла или каталога нет ‘/home/username/project_directory /keys’
Но из командной строки (zsh) я могу запустить команду: keys python manage.py runserver
и она загружает мои переменные среды, как и должно быть, затем загружается и запускает django без проблем.
Каков наилучший способ передать это в отладчик VSCode?
Комментарии:
1. -Как понять «похоже, не удается заставить отладчик python выполнить приведенное выше утверждение». Вы пробовали использовать «python manage.py runserver»? Я выполняю «python manage.py runserver» в терминале, и это показывает, что соединение выполнено успешно.
2. Да, я могу запустить ‘python manage.py runserver» в терминале без проблем. Я также могу запустить ‘keys python manage.py запустите сервер» в терминале, и он работает. Однако я пытаюсь использовать встроенный отладчик VS-Code. Это работает, если я хочу запустить его без ключей…. но мне нужны ключи, чтобы быть первым словом.
Ответ №1:
Не могли бы вы вместо этого использовать переменные среды? Вот пример того, как у меня есть триггерная переменная (via "env"
) для включения / выключения панели инструментов отладки Django:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Django",
"type": "python",
"request": "launch",
"env": {"DJDT": "1"},
"program": "${workspaceFolder}/manage.py",
"args": [
"runserver",
"0:8047",
],
"django": true
}
]
}
Если вы не можете заставить это работать, о чем "program": "${workspaceFolder}/keys manage.py"
?
Комментарии:
1. Привет — спасибо за ответ! К сожалению, мне не повезло в любом случае. По какой-то причине просто не нужно запускать «ключи» перед «python manage.py runserver’ — возможно, это просто невозможно, и я застрял без отладки, если хочу использовать ключи.