Solución:
Tenga en cuenta que proporcionar argumentos en launch.json
funciona como se describe hasta que necesite argumentos de valor clave.
Por ejemplo, el comando
$ python main.py --verbose --name Test
tiene que estar codificado dentro del launch.json línea de argumentos como esta:
args:["--verbose", "--name=Test"],
Encuentre una pista casi oculta en el ejemplo de “Watson” en Configuraciones de depuración de Python en Visual Studio Code.
Desafortunadamente, no hay forma de hacer lo que quieres. Los argumentos solo se pueden pasar como una matriz, pero no como una cadena con espacios. El argumento con espacios se envuelve entre comillas y se pasa como un argumento completo.
Cita de la documentación:
args – argumentos pasados al programa para depurar. Este atributo es de tipo matriz y espera argumentos individuales como elementos de matriz.
Respuesta de uno de los desarrolladores de github:
La regla para traducir una línea de comando a “args” es simple: cada argumento de línea de comando separado por espacios en blanco debe convertirse en un elemento separado del atributo “args”.
AAargh .. Acabo de perder 30 minutos de mi vida tratando de averiguar cómo definir claramente los argumentos con valores. A veces las cosas funcionan y otras fallan por completo. Solo estaba mirando el último mensaje de error: // Use IntelliSense to learn about possible attributes.
Resulta que tenía mi programa Python y el archivo launch.json activos en el editor abierto de VScode. Estaba haciendo cambios en launch.json, pero NO HAGO clic en mi archivo de Python antes de iniciar el depurador.
Doh! No es una sorpresa que un intérprete de Python falle al intentar ejecutar un archivo .json. Es necesario leer detenidamente el mensaje de error completo. (El mensaje de error debería decir … oye, gran tonto … ¡deberías estar usando un archivo .py al ejecutar Python!)
Información compartida aquí en caso de que alguien más cometa el mismo error tonto.