Tkinter Designer

← Guías de tkinter

¿Cómo soluciono ModuleNotFoundError: No module named 'tkinter'?

Tkinter forma parte de la biblioteca estándar, así que casi nunca es un problema de pip: pip install tkinter va a fallar, porque ese paquete no existe. Lo que falta es el kit Tk contra el que se compiló tu Python. Primero, compruébalo:

python -m tkinter

Qué te dice ese comando

Si aparece una ventana pequeña que dice "This is Tcl/Tk version 8.6", tkinter está bien y el problema está en otra parte, casi siempre en el intérprete equivocado. Si vuelve a salir el mismo ModuleNotFoundError, el soporte de Tk realmente no está, y la solución depende de cómo llegó Python a la máquina.

Linux: instala el paquete aparte

La mayoría de las distribuciones separan tkinter del paquete principal de Python, así que una instalación normal de Python de verdad no lo incluye. Esta es, con diferencia, la causa más común del error.

sudo apt install python3-tk        # Debian, Ubuntu, Mint
sudo dnf install python3-tkinter   # Fedora, RHEL
sudo pacman -S tk                  # Arch

macOS: depende de dónde salió tu Python

El instalador de python.org incluye Tk y no necesita nada más. El Python de Homebrew no: necesita la fórmula python-tk correspondiente, y la versión tiene que coincidir con la de tu Python. Si usas pyenv, Tk tiene que estar presente *antes* de compilar la versión, así que instálalo y vuelve a instalar Python.

brew install [email protected]       # que coincida con tu versión de Python

# pyenv: primero Tk, después recompilar
brew install tcl-tk
pyenv install 3.12.4

Windows: vuelve a ejecutar el instalador

El instalador oficial trae un componente opcional llamado "tcl/tk and IDLE". Si se quedó sin marcar, tkinter no está. Ejecuta otra vez el instalador, elige Modify y asegúrate de que esa casilla quede marcada: no hace falta reinstalar nada ni tocar el PATH.

Por qué tu entorno virtual sigue fallando

Un entorno virtual toma la biblioteca estándar del Python que lo creó. Arreglar el intérprete base no repara un entorno creado antes, así que borra el entorno virtual y vuelve a crearlo cuando python -m tkinter funcione fuera de él.

Otra posibilidad, si sigues un tutorial antiguo: en Python 2 se escribía Tkinter, con T mayúscula. En Python 3 es tkinter, en minúsculas, y el import con mayúscula falla en una máquina donde en realidad no falta nada.

Hacerlo sin buscarlo

Para diseñar la ventana no hace falta instalar nada. El lienzo funciona en el navegador y te entrega el Python, así que puedes montar la interfaz mientras resuelves el entorno, y el código que obtienes es tkinter puro: funcionará en cuanto lo haga python -m tkinter.

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

Abrir el diseñador de tkinter →

Preguntas relacionadas