errore matplotlib - nessun modulo chiamato tkinter


195

Ho provato a usare il pacchetto matplotlib tramite Pycharm IDE su Windows 10. quando eseguo questo codice:

from matplotlib import pyplot

Ottengo il seguente errore:

ImportError: No module named 'tkinter'

So che in Python 2.x si chiamava Tkinter, ma non è questo il problema: ho appena installato un nuovissimo python 3.5.1.

EDIT: inoltre, ho anche provato a importare 'tkinter' e 'Tkinter' - nessuno di questi ha funzionato (entrambi hanno restituito il messaggio di errore che ho citato).


Hai importato tkinter da import Tkintero import tkinter?
— Avión

1
sì, ho dimenticato di dire che ... ho ricevuto lo stesso messaggio di errore
— noamgot

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

@ knh170 no, semplicemente il messaggio mostrato nel mio post originale.
— Noamgot

4
sembra che tu abbia usato l'installazione personalizzata. Esegui il programma di installazione di Python, premi modifica e quindi spunta td / tk e IDLE
— omilus

Risposte:


221
sudo apt-get install python3-tk

Poi,

>> import tkinter # all fine

Modifica :

Per Windows, penso che il problema sia che non hai installato il pacchetto Python completo. Poiché Tkinter dovrebbe essere spedito con Python fuori dalla scatola. Vedi: http://www.tkdocs.com/tutorial/install.html

Suggerisco di installare ipython , che fornisce anche potenti shell e pacchetti necessari.


FUNZIONA! Grazie! (Ho installato anaconda tramite il link che hai inserito nel tuo post)
— noamgot

3
se sei su una scatola CentOS, il comando èsudo yum install python36u-tkinter.x86_64
— n1c9

Sto usando pycharm e ho avuto lo stesso errore per quanto riguarda il pacchetto mancante. Dopo aver installato il pacchetto tkinter, matplotlib ha funzionato bene. Grazie @ knh170
— debaonline4u

Ha funzionato per me con Ubuntu 18.04 usando python3 in venv. Basta installarlo: sudo apt-get install python3-tk Quindi puoi provarlo dalla shell python3: da matplotlib import pyplot
— serfer2

1
@ knh170 Possiamo installare tkinter usando pip? Non riesco a cercare nulla di simile a questo
— Scott Yang,

99

Puoi usare

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

se non vuoi usare tkinteraffatto.

Inoltre, non dimenticare di utilizzare %matplotlib inlinenella parte superiore del notebook se ne usi uno.

EDIT: aggè un backend diverso come tkinterper matplotlib.


1
Questo è carino, perché a causa del lavoro con un server non ho bisogno e ho X11, ma alcuni programmi che ho installato dipendono da matplotlib.
— rien333,

2
Fantastico! Nel caso qualcuno si stia chiedendo come funzioni
— Matt,

2
questa soluzione non funziona se si desidera tracciare qualcosa
— Beyhan Gül

4
Solo per aggiungere a questa risposta: aggè un backend non GUI, quindi plt.show()non avrà alcun effetto. Ma puoi ancora fare plt.savefig(filename)e guardare il file per un debug rapido.
— Nico

1
Mi fa risparmiare tempo nel gestire questo errore di tkinter.
— annoying_squid,

35

Su Centos, i nomi e i comandi dei pacchetti sono diversi. Dovrai fare:

sudo yum install tkinter

Per fissare il problema.


31

Per gli utenti Windows , non è necessario scaricare nuovamente il programma di installazione. Basta fare quanto segue:

  1. Vai al menu Start, digita Programmi e funzionalità ,
  2. Seleziona la versione di Python (per me è Python 3.6.5 (64-bit) ),
  3. Fare clic con il tasto destro, premere Cambia ,
  4. Fai clic su Modifica ,
  5. Selezionare td / tk e IDLE (che installa tkinter) e fare clic su Avanti .

Attendi l'installazione e il gioco è fatto.


4
Grazie. È la risposta più utile e corretta tra gli altri. (Ovviamente per gli utenti del sistema operativo Windows)
— Ruslan K.

20

Quasi tutte le risposte che ho cercato per questo problema dicono che Python su Windows viene fornito con tkinter e tcl già installati e non ho avuto fortuna a provare a scaricarli o installarli usando pip o il sito actviestate.com. Alla fine ho scoperto che quando stavo installando Python usando il programma di installazione binario, avevo deselezionato il modulo relativo a TCL e tkinter. Quindi, ho eseguito nuovamente il programma di installazione binario e ho scelto di modificare la mia versione di Python selezionando questa opzione. Non c'è bisogno di fare nulla manualmente allora. Se vai al tuo terminale Python, i seguenti comandi dovrebbero mostrare la versione di tkinter installata con il tuo Python:

import tkinter
import _tkinter
tkinter._test()

1
Corretta. Un'installazione di Windows è l'unico sistema in cui ciò può accadere, come nel caso di me stesso. +1. Vale sicuramente la pena notare per gli utenti con installazioni di Windows.
— marcushobson,

18

Se stai usando fedora, prima installa tkinter

sudo dnf install python3-tkinter

Non penso che sia necessario importare tkinter in seguito, suggerisco anche di usare virtualenv

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

E aggiungi i pacchetti necessari usando pip


10

Su CentOS 7 e Python 3.4, il comando è sudo yum install python34-tkinter

Su Redhat 7.4 con Python 3.6, il comando è sudo yum install rh-python36-python-tkinter


3
Su Centos 7 e Python 3.6, il comando èsudo yum install python36u-tkinter.x86_64
— Rob Hall il

8

Per gli utenti di Windows, rieseguire il programma di installazione. Seleziona Modifica Seleziona la casella per tcl / tk e IDLE. La descrizione per questo dice "Installa tkinter"


8

Su Ubuntu, all'inizio del 2018, non ci sono python3.6-tkdistribuzioni normali di ubuntu (xenial / 16.04), quindi anche se hai versioni precedenti di python-tkquesto non funzionerà.

La mia soluzione è stata quella di utilizzare tutto impostato 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

E ora matplotlibpuoi trovare tkinter.

MODIFICA :

Avevo solo bisogno di 3,6 dopo tutto, e il trucco era:

sudo apt install tk-dev

e quindi ricostruire python3.6, dopo tk-dev , ad esempio:

./configure
make
make install

3
Aggiornamento: Ora ci È una python3.6-tk! sudo apt install python3.6-tkfunziona qui :)
— Luis

4

Se stai usando Python 3.6, questo ha funzionato per me:

sudo apt-get install python3.6-tk

invece di

sudo apt-get install python3-tk

Che funziona con altre versioni di python3


4
Non ho un pacchetto python3.6-tk su Ubuntu 16.04.
— Brooks,

@brooks, stesso qui
— URL gratuito

Inoltre non esisteva su Centos
— Rob Hall il

Dovrebbe essere disponibile ora su Ubuntu 16.04
— Yu-Lin Chen il

3

Per i poveri come me che usano Python 3.7 . Hai bisogno del python3.7-tkpacchetto.

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-tkè installato. Ma non 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) ...

Dopo averlo installato, tutto bene.

$ 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

Su CentOS 6.5 con python 2.7 dovevo fare: yum install python27-tkinter


1
Ricevo "Nessun pacchetto python27-tkinter disponibile".
— proutray

2

A volte (ad esempio nella distribuzione osgeo4w) tkinter viene rimosso.

Prova a cambiare il backend di matplotlib modificando il file matplotlibrc che si trova nel [python install dir]/matplotlib/mpl-data/matplotlibrccambiare il parametro backend da backend: TkAggqualcosa di simile a backend: Qt4Aggcome descritto qui: http://matplotlib.org/faq/usage_faq.html#what-is-a-backend


1

Dato che sto usando Python 3.7 su Ubuntu ho dovuto usare:

sudo apt-get install python3.7-tk

0

Forse hai installato Python dalla fonte. In questo caso, puoi ricompilare Python con tcl / tk supportato.

  1. Collega e installa tcl / tk da http://www.tcl.tk/software/tcltk/download.html , suppongo che tu abbia installato python su /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. Ricompila python con tcl / tk supportato, ad esempio:
# 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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.