¿Cómo puedo depurar el código de Python3 en el código de Visual Studio?

Quiero depurar un proyecto escrito en python3 en Visual Studio Code, pero parece que no encuentro ninguna manera de especificar la versión de intérprete o python en el archivo launch.json.

Funciona muy bien para Python 2, entonces la pregunta es, ¿cómo hago que funcione para Python 3?

La depuración de Python3 también funciona bien. Es un poco confuso ya que hay dos lugares diferentes para especificar la ruta: settings.json y launch.json . Recomiendo usar la extensión Python de Don Jayamanne . Después de instalarlo, debe configurar la ruta al intérprete con el que desea usarlo.

Versión de Python utilizada para Intellisense, Autocompletar, Linting, Formateo, etc.

El mismo intérprete de Python se usa para inteligencia, autocompletar, alineación, formateo, etc. (todo lo que no sea depuración). El intérprete estándar utilizado es el primer intérprete “python” encontrado en la ruta actual. Si se va a usar una versión diferente, esto se puede configurar de una de las siguientes dos maneras:

Configure la ruta al intérprete de python en el archivo de configuración del usuario (settings.json) de la siguiente manera. Asegúrese de especificar el nombre completo del ejecutable de python. “python.pythonPath”: “c: /python27/python.exe”

Configure la ruta al intérprete de python en el archivo de configuración del área de trabajo (settings.json) de la siguiente manera. Asegúrese de especificar el nombre completo del ejecutable de python. “python.pythonPath”: “c: /python27/python.exe” Versión de Python utilizada para la depuración

Los detalles sobre los ajustes de configuración para la depuración se pueden encontrar aquí. Simplemente proporcione la ruta completa al ejecutable de python en la configuración de “python” dentro de los ajustes de configuración en el archivo launch.json de la siguiente manera:

{ "name": "Python", "type": "python", "request": "launch", "stopOnEntry": true, "program": "${file}", "pythonPath": "c:/python27/python.exe", "debugOptions": [ "WaitOnAbnormalExit", "WaitOnNormalExit", "RedirectOutput" ] } 

Como no puedo comentar sobre la respuesta aceptada, copiaré parte de mi respuesta a una pregunta similar.

A partir de septiembre de 2016 (de acuerdo con la documentación de la extensión de Github), solo puede ejecutar un comando desde vscode que le permitirá seleccionar el intérprete de una lista generada automáticamente de intérpretes conocidos (incluido el que se encuentra en el entorno virtual de su proyecto).

Ejecutar:

 Python: Select Workspace Interpreter 

Actualizar Este comando ha sido actualizado a solo:

 Python: Select Interpreter 

en la paleta de comandos (F1 para Windows, Ctrl + Shift + P para MacOS).

Luego, seleccione uno de los intérpretes de python que se muestran en una lista desplegable. Y eso es. Su configuración.json se editará automáticamente para que apunte al intérprete que seleccionó.

Fuente: Documentación de la extensión de Don Jayamanne en Github.

Hay un disparador de configuración dentro del archivo de configuración:

por defecto de Python (que es 2.7 por ahora)

 "python.pythonPath": "python", 

para python3:

 "python.pythonPath": "python3", 

use el comando follow para verificar la versión de python:

 import sys print(sys.version) 

Una nota adicional para aquellos que utilizan la distribución python anaconda por análisis de continuo; Usted puede encontrar mi experiencia útil.

Estoy usando la extensión Python de Don Jayamanne y ejecuto el comando “Seleccionar intérprete del área de trabajo”, pero aún así encontré que recibía consejos sobre la versión incorrecta de python.

La solución que funcionó para mí fue la instalación del paquete pylint para anaconda.

 conda install -c anaconda pylint 

Podemos configurar la depuración en python3 en settings.json :

Archivo> Preferencias> Configuración (~ / .config / Code / User / settings.json) [Configuración de usuario]

 { ... "python.pythonPath": "python3", } 

Además, verifique que el archivo launch.json ya tenga la siguiente configuración:

 "configurations": [ { "name": "Python: Current File (Integrated Terminal)", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" }, ... ]