Tkinter Designer

← Guías de tkinter

¿Por qué tkinter no funciona en VS Code?

En la mayoría de los casos tkinter está bien instalado y VS Code simplemente ejecuta un Python distinto del que probaste. Comprueba qué intérprete tiene seleccionado antes de cambiar cualquier otra cosa.

# En VS Code:  Ctrl+Shift+P  ->  "Python: Select Interpreter"
# Después confírmalo desde la misma terminal que usa VS Code:
python -c "import sys, tkinter; print(sys.executable)"

El intérprete es la respuesta habitual

VS Code recuerda un intérprete por espacio de trabajo, y es fácil acabar en un entorno virtual, en un entorno de Conda o en el Python de la Microsoft Store —sin soporte de Tk— mientras que el Python del sistema sí lo tiene. La ruta que se imprime arriba es la que importa: si no es la que esperabas, selecciona la correcta y recarga la ventana.

Un subrayado rojo no es un error

Que Pylance informe Import "tkinter" could not be resolved es un mensaje de análisis estático del servidor de lenguaje, no algo con lo que tu programa se haya topado. Si el script se ejecuta, el import está bien y Pylance está mirando otro entorno: la misma solución, seleccionar el intérprete, lo quita.

También conviene saber lo contrario: sin subrayado pero con un ModuleNotFoundError al ejecutar, el editor y el tiempo de ejecución no coinciden, lo que otra vez apunta al intérprete y no a tkinter.

Extensiones que ejecutan su propio Python

La extensión Code Runner ejecuta un comando que guarda por separado, así que puede ignorar el intérprete que elegiste. Si el botón Run falla pero desde la terminal funciona, esa es la causa: apunta Code Runner al mismo intérprete, o usa la ejecución integrada.

Sesiones remotas, WSL y SSH

Tkinter necesita una pantalla. Por Remote-SSH o dentro de un contenedor normalmente no hay ninguna, así que el import funciona y la ventana no aparece nunca, o Tk lanza un error por no poder conectarse a la pantalla. El WSL moderno trae WSLg y funciona; las instalaciones antiguas necesitan un servidor X en Windows y la variable DISPLAY definida. Ejecutar el script en local es la forma más rápida de saber si ese es tu problema.

Hacerlo sin buscarlo

Diseñar no depende de nada de esto: el lienzo es una página web, así que la cuestión del intérprete solo aparece cuando ejecutas el código que descargaste, y para entonces ya sabes a qué Python estás apuntando.

Diseña la ventana visualmente y ve el código Python generado sobre la marcha.

Abrir el diseñador de tkinter →

Preguntas relacionadas