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é).
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.
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.
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.
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
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()
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
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
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"
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:
Attendez l'installation et vous avez terminé.
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
Sur CentOS 6.5 avec python 2.7, je devais faire: yum install python27-tkinter
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
Peut-être avez-vous installé python à partir des sources. Dans ce cas, vous pouvez recompiler python avec tcl/tk pris en charge.
/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
# 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
Depuis que j'utilise Python 3.7 sur Ubuntu, je devais utiliser:
Sudo apt-get install python3.7-tk