Задание аргументов в launch.json для Python

Я хочу указать аргументы в моем файле launch.json для отладки. Я знаю, что могу сделать следующее:

"args": ["--arg1","value","--arg2"]

Однако у меня очень длинный список аргументов, которые форматируются как строка с разделителями. Что-то вроде этого: "--arg1 value --arg2". Я попытался указать:

"args": ["--arg1 value --arg2"]

Но это не сработало. Сейчас мой рабочий процесс - взять строку аргументов, запустить его через скрипт python, который изменяет строку в список и скопирует ее в мой файл launch.json. Есть лучший способ сделать это?

Ответ 1

К сожалению, вы не можете делать то, что хотите. Аргументы могут передаваться только как массив, но не как строка с пробелами. Аргумент с пробелами заключен в кавычки и передается как один цельный аргумент.

Цитата из документации:

args - аргументы, переданные программе для отладки. Этот атрибут имеет массив типов и ожидает отдельных аргументов как элементов массива.

Ответ одного из разработчиков на github:

Правило для перевода командной строки в "args" прост: каждый аргумент командной строки, разделенный пробелом, должен стать отдельным элементом атрибута "args".

Ответ 2

Имейте в виду, что предоставление args в launch.json работает так, как описано до тех пор, пока вам не понадобятся ключевые аргументы.

Например, эта команда

$ python main.py --verbose --name Test 

должен быть закодирован внутри строки start.json args как это

args:["--verbose","--name=Test"],

Найдите почти скрытый намек на примере "Уотсона" на странице https://code.visualstudio.com/docs/python/debugging

Ответ 3

AAargh.. Я просто потратил 30 минут своей жизни, пытаясь понять, как четко определить аргументы со значениями. Иногда что-то работало, а иногда и полное провалилось. Я просто смотрел последнее сообщение об ошибке: //Use IntelliSense to learn about possible attributes.

Оказывается, у меня была и моя программа python, и файл launch.json, активный в открытом редакторе VScode. Я вносил изменения в launch.json, но FAILING, чтобы щелкнуть мой файл python перед запуском отладчика.

Doh! Не удивительно, что интерпретатор python терпит неудачу при попытке запустить.json файл. Необходимо внимательно прочитать полное сообщение об ошибке. (Сообщение об ошибке должно сказать... эй, ты большой манекен.. вы должны использовать.py файл при выполнении python!)

Информация делится здесь, если кто-то другой совершает ту же ошибку.

Ответ 4

Попробуй это

"args": [   "-arg1 value1",
            "-argname2 value2"],

Это работает с моей PowerShell по имени args