web-dev-qa-db-fra.com

erreur matplotlib - pas de module nommé tkinter

J'ai essayé d'utiliser le paquet matplotlib via Pycharm IDE sur Windows 10. Lorsque j'ai exécuté ce code:

from matplotlib import pyplot

Je reçois l'erreur suivante:

ImportError: No module named 'tkinter'

Je sais que dans python 2.x, il s'appelait Tkinter, mais ce n'est pas le problème - je viens d'installer un tout nouveau python 3.5.1.

EDIT: de plus, j'ai aussi essayé d'importer 'tkinter' et 'Tkinter' - aucun de ces deux n’a fonctionné (les deux ont renvoyé le message d’erreur que j'ai mentionné).

174
noamgot
Sudo apt-get install python3-tk

Ensuite,

>> import tkinter # all fine

Éditer :

Pour Windows, je pense que le problème est que vous n’avez pas installé le package complet Python. Étant donné que Tkinter devrait être livré avec Python hors de sa boîte. Voir: http://www.tkdocs.com/tutorial/install.html

Je suggère d'installer ipython , qui fournit un puissant shell et les packages nécessaires.

198
knh170

vous pouvez utiliser

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

si vous ne voulez pas utiliser tkinter du tout.

N'oubliez pas également d'utiliser %matplotlib inline en haut de votre ordinateur portable si vous en utilisez un.

EDIT: agg est un backend différent de tkinter pour matplotlib.

72
markroxor

Sur Centos, les noms de package et les commandes sont différents. Vous devrez faire:

Sudo yum install tkinter

Pour résoudre le problème.

34
razeh

Si vous utilisez Fedora, installez d’abord tkinter

Sudo dnf install python3-tkinter

Je ne pense pas que vous ayez besoin d'importer tkinter après, je vous suggère également d'utiliser virtualenv

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

Et ajoutez les paquets nécessaires en utilisant pip

18
sage poudel

Presque toutes les réponses à mes questions sur ce problème indiquent que Python sous Windows est livré avec tkinter et tcl déjà installés, et je n’ai pas eu la chance de les télécharger ou de les installer à l’aide de pip ou du site actviestate.com. J'ai finalement trouvé que lorsque j'installais python à l'aide du programme d'installation binaire, j'avais décoché le module lié à TCL et à tkinter. J'ai donc à nouveau exécuté le programme d'installation binaire et choisi de modifier ma version de python en sélectionnant cette option. Pas besoin de faire quoi que ce soit manuellement alors. Si vous allez sur votre terminal python, les commandes suivantes doivent vous montrer la version de tkinter installée avec votre Python:

import tkinter
import _tkinter
tkinter._test()
17
user58419

Sur CentOS 7 et Python3.4, la commande est Sudo yum install python34-tkinter

Sur Redhat 7.4 avec Python 3.6, la commande est Sudo yum install rh-python36-python-tkinter

9

Sur Ubuntu, début 2018, il n'y a pas de python3.6-tk sur les distributions normales d'ubuntu (xenial/16.04), donc même si vous avez des versions antérieures de python-tk, cela ne fonctionnera pas.

Ma solution a été d'utiliser tout configurer avec 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

Et maintenant, matplotlib peut trouver tkinter.

EDIT:

J'avais juste besoin de 3,6 après tout, et le truc était de:

Sudo apt install tk-dev

puis reconstruisez python3.6, après tk-dev, par exemple:

./configure
make
make install
7
Josh.F

Pour les utilisateurs Windows, réexécutez le programme d'installation. Sélectionnez Modifier. Cochez la case pour tcl/tk et IDLE. La description de ceci indique "Installe tkinter"

7
petEEy

Pour les utilisateurs de Windows , il n'est pas nécessaire de télécharger à nouveau le programme d'installation. Il suffit de faire ce qui suit:

  1. Allez dans le menu Démarrer, tapez Programmes et fonctionnalités ,
  2. Sélectionnez la version Python (pour moi, c'est Python 3.6.5 (64 bits) ),
  3. Faites un clic droit, appuyez sur Modifier ,
  4. Cliquez sur Modifier ,
  5. Sélectionnez td/tk et IDLE (qui installe tkinter) et cliquez sur suivant .

Attendez l'installation et vous avez terminé.

5
gdrt

Si vous utilisez python 3.6, cela a fonctionné pour moi:

Sudo apt-get install python3.6-tk

au lieu de

Sudo apt-get install python3-tk

Ce qui fonctionne pour d'autres versions de python3

4
bertucho

Sur CentOS 6.5 avec python 2.7, je devais faire: yum install python27-tkinter

2
user1747134

Parfois (par exemple dans la distribution osgeo4w), tkinter est supprimé.

Essayez de changer le fichier matplotlib backend retouche le fichier matplotlibrc situé dans [python install dir]/matplotlib/mpl-data/matplotlibrc et changez le backend paramètre de backend: TkAgg à quelque chose d'autre comme backend: Qt4Agg comme décrit ici: http://matplotlib.org/faq/usage_faq.html#what-is-a-backend

2
Enrico Ferreguti

Peut-être avez-vous installé python à partir des sources. Dans ce cas, vous pouvez recompiler python avec tcl/tk pris en charge.

  1. Complie et installe tcl/tk depuis http://www.tcl.tk/software/tcltk/download.html , je suppose que vous avez installé python à /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. Recompilez python avec tcl/tk pris en charge, par exemple:
# 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
0
qi yuan

Depuis que j'utilise Python 3.7 sur Ubuntu, je devais utiliser:

Sudo apt-get install python3.7-tk
0
John