¿Cómo configurar el directorio de trabajo para depurar un programa Python en VS Code?

Resuelto user1443098 asked hace 8 años • 13 respuestas

¿Cómo ejecuto un archivo Python con el depurador y especifico el directorio de trabajo para la ejecución?

user1443098 avatar Jul 28 '16 04:07 user1443098
Aceptado

El comentario de @ SpeedCoder5 merece ser una respuesta.

En launch.json, especifique un directorio de trabajo dinámico (es decir, el directorio donde se encuentra el archivo Python actualmente abierto) usando:

"cwd": "${fileDirname}"

Esto aprovecha la función de "referencia de variables" en VS Code y la variable predefinida fileDirname.

Tenga en cuenta que, como dicen los comentarios, es posible que también deba agregar la purposeopción :

"purpose": ["debug-in-terminal"]

Es posible que se requiera "Propósito" si se usa el botón de reproducción en la parte superior derecha de la ventana, en lugar de F5"Ejecutar y depurar" en la barra lateral.

Si está utilizando la Python: Current File (Integrated Terminal)opción cuando ejecuta Python, su launch.jsonarchivo podría verse como el mío, a continuación ( más información sobre launch.jsonlos archivos aquí ).

{
    "version": "0.2.0",
    "configurations": [
    {
            "name": "Python: Current File (Integrated Terminal)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}",
            "purpose":["debug-in-terminal"]
    }, 

    //... other settings, but I modified the "Current File" setting above ...
}

Recuerde que el launch.jsonarchivo controla la configuración de ejecución/depuración de su proyecto de código de Visual Studio ; mi launch.jsonarchivo fue generado automáticamente por VS Code, en el directorio de mi "Proyecto Abierto" actual. Acabo de editar el archivo manualmente para agregarlo "cwd": "${fileDirname}"como se muestra arriba.

Recuerde que el launch.jsonarchivo puede ser específico de su proyecto o específico de su directorio, así que confirme que está editando el archivo correcto launch.json (ver comentario)

Si no tienes un launch.jsonarchivo, prueba esto :

Para crear un archivo launch.json, abra la carpeta de su proyecto en VS Code (Archivo > Abrir carpeta) y luego seleccione el ícono de ajustes Configurar en la barra superior de la vista Depurar.

Según el comentario de @kbro, es posible que se le solicite que cree un launch.jsonarchivo haciendo clic en el botón Depurar:

Cuando hice clic en el botón Depurar en mi panel de navegación, decía "Para personalizar Ejecutar y Depurar, cree un archivo launch.json". Al hacer clic en "crear..." se abrió un cuadro de diálogo que preguntaba qué idioma estaba depurando . En mi caso seleccioné Python

Nate Anderson avatar Mar 08 '2019 23:03 Nate Anderson

Configure el cwdajuste de launch.jsonla siguiente manera:

{
    "name": "Python",
    "type": "python",
    "pythonPath": "python", 
    ...
    "cwd": "<Path to the directory>"
    ...
}
Don avatar Jul 28 '2016 13:07 Don

En algunos casos, también puede resultar útil configurar PYTHONPATHjunto con workspaceFolder:

{
    "name": "Python: Current File",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "integratedTerminal",
    "cwd": "${workspaceFolder}",
    "env": {
        "PYTHONPATH": "${cwd}"
    }
}

CermakM avatar Nov 07 '2019 15:11 CermakM

Esta configuración me ayuda: (soy una persona de Windows)

{
  "type": "node",
  "request": "launch",
  "name": "Launch Program",
  "cwd": "${workspaceFolder}\\app\\js", // set directory here
  "program": "${workspaceFolder}\\app\\js\\server.js", // set start js here
}
Xin avatar May 05 '2017 07:05 Xin