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.