Error de matplotlib: ningún módulo llamado tkinter


195

Intenté usar el paquete matplotlib a través de Pycharm IDE en Windows 10. cuando ejecuto este código:

from matplotlib import pyplot

Obtuve el siguiente error:

ImportError: No module named 'tkinter'

Sé que en Python 2.x se llamaba Tkinter, pero ese no es el problema: acabo de instalar un nuevo Python 3.5.1.

EDITAR: además, también intenté importar 'tkinter' y 'Tkinter', ninguno de estos funcionó (ambos devolvieron el mensaje de error que mencioné).


¿Has importado tkinter por import Tkintero import tkinter?
— Avión

1
sí, olvidé mencionar que ... recibí el mismo mensaje de error
— noamgot

ImportError: No module named '_tkinter', please install the python3-tk package?
— knh170

@ knh170 no, simplemente el mensaje que se muestra en mi publicación original.
— noamgot

44
parece que usó una instalación personalizada. Vuelva a ejecutar el instalador de Python, presione modificar y luego marque td / tk e IDLE
— omilus

Respuestas:


221
sudo apt-get install python3-tk

Luego,

>> import tkinter # all fine

Editar :

Para Windows, creo que el problema es que no instaló el paquete completo de Python. Dado que Tkinter debe enviarse con Python fuera de la caja. Ver: http://www.tkdocs.com/tutorial/install.html

Sugiero instalar ipython , que también proporciona un potente shell y los paquetes necesarios.


¡ESTÁ FUNCIONANDO! ¡Gracias! (Instalé anaconda a través del enlace que pusiste en tu publicación)
— noamgot

3
si estás en una caja CentOS, el comando essudo yum install python36u-tkinter.x86_64
— n1c9

Estoy usando pycharm y recibí el mismo error con respecto al paquete que falta. Después de instalar el paquete tkinter, matplotlib funcionó bien. Gracias @ knh170
— debaonline4u

Trabajó para mí con Ubuntu 18.04 usando python3 en venv. Simplemente instálelo: sudo apt-get install python3-tk Luego puede probarlo desde python3 shell: desde matplotlib import pyplot
— serfer2

1
@ knh170 ¿Podemos instalar tkinter usando pip? No puedo buscar nada relacionado con esto
— Scott Yang

99

puedes usar

import matplotlib
matplotlib.use('agg')
import matplotlib.pyplot as plt

si no quieres usarlo tkinteren absoluto.

Tampoco se olvide de usar %matplotlib inlineen la parte superior de su computadora portátil si usa una.

EDITAR: agges un backend diferente como tkinterpara matplotlib.


1
Esto es bueno, porque debido a que trabajo con un servidor no necesito y tengo X11, pero algunos programas que he instalado dependen de matplotlib.
— rien333

2
¡Fantástico! En caso de que alguien se pregunte cómo funciona esto
— Matt

2
esta solución no funciona si quieres trazar algo
— Beyhan Gül

44
Solo para agregar a esta respuesta: agges un back-end que no es GUI, por plt.show()lo que no tendrá ningún efecto. Pero aún puede hacer plt.savefig(filename)y mirar el archivo para una depuración rápida.
— Nico

1
Me ahorra tiempo al tratar con este error tkinter.
— annoying_squid

35

En Centos, los nombres y comandos del paquete son diferentes. Tendrás que hacer:

sudo yum install tkinter

Para solucionar el problema


29

Para los usuarios de Windows , no es necesario volver a descargar el instalador. Solo haz lo siguiente:

  1. Vaya al menú de inicio, escriba Programas y características ,
  2. Seleccione la versión de Python (para mí es Python 3.6.5 (64 bits) ),
  3. Haga clic derecho, presione Cambiar ,
  4. Haz clic en Modificar ,
  5. Seleccione td / tk e IDLE (que instala tkinter) y haga clic en siguiente .

Espere la instalación y ya está.


44
Gracias. Es la respuesta más útil y correcta entre otras. (Para usuarios del sistema operativo Windows, por supuesto)
— Ruslan K.

20

Casi todas las respuestas que busqué para este problema dicen que Python en Windows viene con tkinter y tcl ya instalados, y no tuve suerte tratando de descargarlos o instalarlos usando pip o el sitio actviestate.com. Finalmente descubrí que cuando estaba instalando Python usando el instalador binario, había desmarcado el módulo relacionado con TCL y tkinter. Entonces, ejecuté el instalador binario nuevamente y elegí modificar mi versión de Python esta vez seleccionando esta opción. No hay necesidad de hacer nada manualmente entonces. Si va a su terminal de Python, los siguientes comandos deberían mostrarle la versión de tkinter instalada con su Python:

import tkinter
import _tkinter
tkinter._test()

1
Correcto. Una instalación de Windows es el único sistema donde esto puede suceder, como fue mi caso. +1. Esto sin duda vale la pena señalar para los usuarios con instalaciones de Windows.
— marcushobson

18

Si está usando fedora, primero instale tkinter

sudo dnf install python3-tkinter

No creo que necesite importar tkinter después, también le sugiero que use virtualenv

$ python3 -m venv myvenv
$ source myvenv/bin/activate

Y agregue los paquetes necesarios usando pip


10

En CentOS 7 y Python 3.4, el comando es sudo yum install python34-tkinter

En Redhat 7.4 con Python 3.6, el comando es sudo yum install rh-python36-python-tkinter


3
En Centos 7 y Python 3.6, el comando essudo yum install python36u-tkinter.x86_64
— Rob Hall,

8

Para usuarios de Windows, vuelva a ejecutar el instalador. Selecciona Modificar. Marque la casilla para tcl / tk e IDLE. La descripción de esto dice "Instala tkinter"


8

En Ubuntu, a principios de 2018, no hay python3.6-tkdistribuciones normales en ubuntu (xenial / 16.04), por lo que incluso si tiene versiones anteriores depython-tk esto no funcionará.

Mi solución fue usar configurar todo con python 3.5:

 sudo apt install python3.5-tk
 virtualenv --python=`which python3.5` python-env
 source python-env/bin/activate
 pip install -r requirements.txt

Y ahora matplotlibpuede encontrar tkinter.

EDITAR :

Solo necesitaba 3.6 después de todo, y el truco era:

sudo apt install tk-dev

y luego reconstruir python3.6, después tk-dev , por ejemplo:

./configure
make
make install

3
Actualización: Ahora hay ES una python3.6-tk! sudo apt install python3.6-tktrabaja aquí :)
— Luis

4

Si está utilizando Python 3.6, esto funcionó para mí:

sudo apt-get install python3.6-tk

en vez de

sudo apt-get install python3-tk

Que funciona para otras versiones de python3


44
No tengo un paquete python3.6-tk en ubuntu 16.04.
— Brooks

@brooks, lo mismo aquí
— Url gratis el

Tampoco existía en Centos
— Rob Hall

Debería estar disponible ahora en ubuntu 16.04
— Yu-Lin Chen

3

Para los pobres como yo usando Python 3.7 . Necesitas el python3.7-tkpaquete.

sudo apt install python3.7-tk

$ python
Python 3.7.4 (default, Sep  2 2019, 20:44:09)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'tkinter'
>>> exit()

Nota. python3-tkesta instalado. Pero no python3.7-tk.

$ sudo apt install python3.7-tk
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  tix python3.7-tk-dbg
The following NEW packages will be installed:
  python3.7-tk
0 upgraded, 1 newly installed, 0 to remove and 34 not upgraded.
Need to get 143 kB of archives.
After this operation, 534 kB of additional disk space will be used.
Get:1 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu xenial/main amd64 python3.7-tk amd64 3.7.4-1+xenial2 [143
kB]
Fetched 143 kB in 0s (364 kB/s)
Selecting previously unselected package python3.7-tk:amd64.
(Reading database ... 256375 files and directories currently installed.)
Preparing to unpack .../python3.7-tk_3.7.4-1+xenial2_amd64.deb ...
Unpacking python3.7-tk:amd64 (3.7.4-1+xenial2) ...
Setting up python3.7-tk:amd64 (3.7.4-1+xenial2) ...

Después de instalarlo, todo bien.

$ python3
Python 3.7.4 (default, Sep  2 2019, 20:44:09)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> exit()

2

En CentOS 6.5 con python 2.7 tenía que hacer: yum install python27-tkinter


1
Recibo "No hay paquete python27-tkinter disponible".
— Proutray


1

Como estoy usando Python 3.7 en Ubuntu, tuve que usar:

sudo apt-get install python3.7-tk

0

Tal vez instaló Python desde la fuente. En este caso, puede recompilar python con tcl / tk compatible.

  1. Cumpla e instale tcl / tk desde http://www.tcl.tk/software/tcltk/download.html , supongo que instaló Python en /home/xxx/local/tcl-tk/.
# install tcl
wget -c https://prdownloads.sourceforge.net/tcl/tcl8.6.9-src.tar.gz
tar -xvzf tcl8.6.9-src.tar.gz
cd tcl8.6.9
./configure --prefix=/home/xxx/local/tcl-tk/
make
make install

# install tk
wget -c https://prdownloads.sourceforge.net/tcl/tk8.6.9.1-src.tar.gz
tar -xvzf tk8.6.9.1-src.tar.gz
cd tk8.6.9.1
./configure --prefix=/home/xxx/local/tcl-tk/
make
make install
  1. Vuelva a compilar Python con tcl / tk compatible, por ejemplo:
# download the source code of python and decompress it first.

cd <your-python-src-dir>
./configure --prefix=/home/xxx/local/python \
 --with-tcltk-includes=/home/xxx/local/tcl-tk/include \
 --with-tcltk-libs=/home/xxx/local/tcl-tk/lib
make 
make install

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.