J'essaie de tracer un graphique simple en utilisant pyplot, par exemple:
Collecting tkinter Could not find a version that satisfies the requirement tkinter (from versions: ) No matching distribution found for tkinter
mais le chiffre n'apparaît pas et j'obtiens le message suivant:
ModuleNotFoundError: No module named 'tkinter'
J'ai vu à plusieurs endroits qu'il fallait changer la configuration de matplotlib en utilisant ce qui suit:
import matplotlib matplotlib.use('TkAgg') import matplotlib.pyplot as plt
J'ai fait cela, mais j'ai ensuite reçu un message d'erreur car il ne trouve pas de module:
UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
Ensuite, j'ai essayé d'installer "tkinter" en utilisant pip install tkinter
(dans l'environnement virtuel), mais il ne le trouve pas:
import matplotlib.pyplot as plt plt.plot([1,2,3],[5,7,4]) plt.show()
Je dois également mentionner que j'exécute tout cela sur l'EDI Pycharm Community Edition en utilisant un environnement virtuel, et que mon système d'exploitation est Linux / Ubuntu 18.04.
Je voudrais savoir comment je peux résoudre ce problème afin de pouvoir afficher le graphique.
14 Réponses :
Essayez d' import tkinter
car pycharm a déjà installé tkinter pour vous, j'ai regardé Installer tkinter pour Python
Vous pouvez peut-être essayer:
import tkinter import matplotlib matplotlib.use('TkAgg') plt.plot([1,2,3],[5,7,4]) plt.show()
comme moyen d'installation de tkinter
J'ai essayé votre chemin, il semble qu'aucune erreur ne se produise sur mon ordinateur, cela montre avec succès le chiffre. peut-être parce que pycharm a tkinter comme paquet système, vous n'avez donc pas besoin de l'installer. Mais si vous ne trouvez pas tkinter à l'intérieur, vous pouvez aller sur Tkdocs pour voir la façon d'installer tkinter, comme il le mentionne, tkinter est un package de base pour python.
Merci pour votre suggestion. Malheureusement, cela ne fonctionne pas ( ModuleNotFoundError: No module named 'tkinter'
). J'essaierai d'installer tkinter d'une autre manière.
J'ai trouvé une solution à mon problème (grâce à l'aide de ImportanceOfBeingErnest ).
Tout ce que j'avais à faire était d'installer tkinter
via le terminal bash Linux en utilisant la commande suivante:
sudo apt-get install python3-tk
au lieu de l'installer avec pip
ou directement dans l'environnement virtuel de Pycharm.
En fait, j'ai aussi réalisé que depuis que j'ai installé tkinter, je n'ai plus besoin d'ajouter les deux premières lignes de mon code ( import matplotlib
et matplotlib.use('TkAgg')
)
Par python3-matplotlib-tk
exhaustivité, sous OpenSuse Leap, le package que j'ai dû installer s'appelle python3-matplotlib-tk
.
Cette réponse pourrait probablement mentionner que tkinter
est spécifique à la version de python dans le sens où cette commande particulière installera tkinter
exclusivement pour votre version par défaut de python. Supposons que vous ayez différentes installations de versions de python pour divers environnements virtuels. Dans ce cas, vous devrez l'installer pour la version python souhaitée utilisée dans ce venv fonctionnel. Par exemple, dans mon cas: sudo apt-get install python3.7-tk
. Ne sachant pas cela, j'ai eu du mal à obtenir des erreurs «tkinter» de nom de module, même après l'avoir installé pour ma version globale de python.
J'ai dû installer un terminal Linux Bash sur mon PC pour exécuter cette commande. Et ça a marché! Voir howtogeek.com/249966/...
Dans mon cas, le message d'erreur impliquait que je travaillais dans une console sans tête. Donc plt.show()
ne pouvait pas fonctionner. Ce qui fonctionnait, c'était d'appeler plt.savefig
:
import matplotlib.pyplot as plt plt.plot([1,2,3], [5,7,4]) plt.savefig("mygraph.png")
J'ai trouvé la réponse sur un référentiel github .
Si vous utilisez Arch Linux (distributions comme Manjaro
ou Antegros
) tapez simplement:
sudo pacman -S tk
Et tout fonctionnera parfaitement!
Merci. Je cherchais ça.
J'ai aussi eu ce problème dans PyCharm. Ce problème est dû au fait que vous n'avez pas de module tkinter dans votre machine.
Pour installer, suivez les étapes ci-dessous (sélectionnez votre système d'exploitation approprié)
Pour les utilisateurs d'ubuntu
sudo yum install python3-tkinter
ou
sudo yum install python-tkinter
Pour les utilisateurs Centos
sudo apt-get install python3-tk
ou
sudo apt-get install python-tk
Pour Windows, utilisez pip pour installer tk
Après avoir installé tkinter, redémarrez votre Pycharm et exécutez votre code, cela fonctionnera
Linux Mint 19. M'a aidé:
sudo apt install tk-dev
PS Recompile l'interpréteur python après l'installation du package.
Juste au cas où cela aiderait quelqu'un.
Version Python: plate-forme 3.7.7: Ubuntu 18.04.4 LTS
Ceci est venu avec la version 3.6.9 par défaut de python, mais j'avais installé ma propre version 3.7.7 python dessus (installé en le construisant à partir des sources)
tkinter ne fonctionnait pas même lorsque l' help('module')
affiche tkinter dans la liste.
Les étapes suivantes ont fonctionné pour moi:
sudo apt-get install tk-dev.
reconstruisez le python: 1. Accédez à votre dossier python et exécutez les vérifications:
python3.7 -m tkinter
sudo make -j 8
--- ici 8 sont le nombre de processeurs, vérifiez le vôtre en utilisant la commande nproc
.Installation en utilisant:
sudo make altinstall
N'utilisez pas sudo make install, cela écrasera la version 3.6.9 par défaut, qui pourrait être compliquée plus tard.
cd Python-3.7.7 sudo ./configure --enable-optimizations
Une fenêtre apparaîtra, votre tkinter est prêt maintenant.
Après avoir mis à jour de nombreux packages ( Spyder
3 vers 4, Keras
et Tensorflow
et beaucoup de leurs dépendances), j'ai eu le même problème aujourd'hui! Je ne peux pas comprendre ce qui s'est passé; mais l'environnement virtuel (basé sur conda) qui continuait à utiliser Spyder
3 n'avait pas le problème. Bien que l'installation de tkinter
ou la modification du backend, via matplotlib.use('TkAgg)
comme indiqué ci-dessus, ou ce joli post sur la façon de changer le backend , pourrait bien résoudre le problème, je ne vois pas cela comme des solutions rigides. Pour moi, désinstaller matplotlib
et le réinstaller était magique et le problème a été résolu.
pip install matplotlib
... puis installez
pip uninstall matplotlib
De tout ce qui précède, cela pourrait être un problème de gestion de paquet, et BTW, j'utilise à la fois conda
et pip
, chaque fois que c'est possible.
Lorsque j'ai rencontré cette erreur sur Spyder, je suis passé de l'exécution de mon code ligne par ligne à la mise en évidence de mon bloc de code de traçage et à l'exécution de tout cela en même temps. Voila, l'image est apparue.
Vous pouvez changer le matplotlib en utilisant le backend en utilisant de agg
à Tkinter TKAgg
utilisant la commande
matplotlib.use('TKAgg',warn=False, force=True)
Cela a été très utile car je n'ai pas eu à recharger ma console ipython interactive lol. Merci
Installation simple
pip3 install PyQt5==5.9.2
Ça marche pour moi.
Ouais, ça marche! Je l'ai installé dans mon environnement virtuel via le terminal de PyCharm.
J'exécute "pip3 install PyQt5" sans spécifier le numéro de version.
J'ai ajouté % matplotlib en ligne et mon tracé est apparu dans Jupyter Notebook.
Le commentaire de @xicocaio doit être mis en évidence.
tkinter est spécifique à la version de python dans le sens où sudo apt-get install python3-tk
installera tkinter exclusivement pour votre version par défaut de python. Supposons que vous ayez différentes versions de python dans divers environnements virtuels, vous devrez installer tkinter pour la version python souhaitée utilisée dans cet environnement virtuel. Par exemple, sudo apt-get install python3.7-tk
. Ne pas faire cela entraînera toujours No module named ' tkinter'
erreurs No module named ' tkinter'
, même après l'avoir installé pour la version globale de python.
Cela a fonctionné avec R réticulé. Trouvé ici .
1: matplotlib.use( 'tkagg' )
ou 2: matplotlib$use( 'tkagg' )
Par exemple:
import numpy as np import matplotlib.pyplot as plt from matplotlib import style import matplotlib matplotlib.use( 'tkagg' ) style.use("ggplot") from sklearn import svm x = [1, 5, 1.5, 8, 1, 9] y = [2, 8, 1.8, 8, 0.6, 11] plt.scatter(x,y) plt.show()
Oubliez le graphique un instant. Votre problème est d'installer tkinter. Avez-vous essayé l'une des solutions disponibles à cela, par exemple stackoverflow.com/questions/4783810/install-tkinter-for-pyth sur ?
Utilisez-vous réellement tkinter pour quoi que ce soit, ou l'avez-vous simplement choisi comme backend plt?
@ImportanceOfBeingErnest: Merci pour l'indice. Je vais en effet me concentrer sur l'installation de tkinter en premier. Je vais jeter un œil au lien que vous avez fourni et voir si je peux en tirer quelque chose.
@ G.Anderson: Je n'avais aucune idée de ce qu'était tkinter avant de rencontrer cette erreur avec matplotlib. Maintenant, j'essaie de l'installer juste pour pouvoir afficher des graphiques (donc oui, je suppose que je viens de le choisir comme backend plt). Si vous connaissez un autre moyen (c'est-à-dire sans utiliser tkinter), je serais heureux de l'entendre.
Vous pouvez utiliser un certain nombre de backends . Voici une réponse sur le cyclisme via les backends jusqu'à ce que vous en trouviez un qui fonctionne avec votre installation
@ImportanceOfBeingErnest: Merci beaucoup pour votre aide. J'ai installé tkinter dans le terminal bash en utilisant
apt-get install python3-tk
(à partir du lien que vous m'avez envoyé) et cela semble avoir fonctionné, car je peux maintenant afficher des graphiques. De plus, je n'ai pas besoin d'importer tkinter dans mon script.@ G.Anderson: J'ai exécuté le script pour parcourir les différents backends. Il s'avère que seul TkAgg est disponible! En effet, je venais de l'installer avant de tester le script.
Les versions modernes de matplotlib passeront automatiquement en revue les boîtes à outils disponibles; donc si tkinter n'est pas installé (et aucune des autres options ne l'est), il reviendra au backend
agg
.Sur Arch Linux,
pacman -S --needed python-pyqt5
résolu le problème.