Ich versuche, mit pyplot ein einfaches Diagramm zu zeichnen, z.
import matplotlib.pyplot as plt
plt.plot([1,2,3],[5,7,4])
plt.show()
Die Abbildung wird jedoch nicht angezeigt und ich erhalte die folgende Meldung:
UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
Ich habe an mehreren Stellen gesehen, dass man die Konfiguration von matplotlib folgendermaßen ändern musste:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
Ich habe dies getan, aber dann eine Fehlermeldung erhalten, weil kein Modul gefunden werden kann:
ModuleNotFoundError: No module named 'tkinter'
Dann habe ich versucht, "tkinter" mit pip install tkinter
(innerhalb der virtuellen Umgebung) zu installieren , aber es findet es nicht:
Collecting tkinter
Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter
Ich sollte auch erwähnen, dass ich all dies auf Pycharm Community Edition IDE in einer virtuellen Umgebung ausführe und dass mein Betriebssystem Linux / Ubuntu 18.04 ist.
Ich möchte wissen, wie ich dieses Problem lösen kann, um das Diagramm anzeigen zu können.
python
matplotlib
pycharm
johnwolf1987
quelle
quelle
Antworten:
Ich habe eine Lösung für mein Problem gefunden (dank der Hilfe von ImportanceOfBeingErnest ).
Alles, was ich tun musste, war die Installation
tkinter
über das Linux-Bash-Terminal mit dem folgenden Befehl:anstatt es mit
pip
oder direkt in der virtuellen Umgebung in Pycharm zu installieren.quelle
import matplotlib
undmatplotlib.use('TkAgg')
)python3-matplotlib-tk
.tkinter
Python in dem Sinne versionsspezifisch ist, dass dieser spezielle Befehltkinter
ausschließlich für Ihre Standardversion von Python installiert wird . Angenommen, Sie haben verschiedene Python-Versionen für verschiedene virtuelle Umgebungen installiert. In diesem Fall müssen Sie es für die gewünschte Python-Version installieren, die in diesem funktionierenden Venv verwendet wird. Zum Beispiel in meinem Fall :sudo apt-get install python3.7-tk
. Wenn ich das nicht wusste, hatte ich eine angemessene Zeit damit zu kämpfen, keine Fehler mit dem Modulnamen 'tkinter' zu bekommen, selbst nachdem ich es für meine globale Python-Version installiert hatte.In meinem Fall bedeutete die Fehlermeldung, dass ich in einer kopflosen Konsole arbeitete. So
plt.show()
konnte nicht funktionieren. Was funktionierte, war zu rufenplt.savefig
:Ich habe die Antwort in einem Github-Repository gefunden .
quelle
Wenn Sie Arch Linux (Distributionen wie
Manjaro
oderAntegros
) verwenden, geben Sie einfach Folgendes ein:Und alles wird perfekt funktionieren!
quelle
Ich hatte auch dieses Problem in PyCharm. Dieses Problem liegt daran, dass Ihr Computer kein tkinter-Modul enthält.
Befolgen Sie zur Installation die folgenden Schritte (wählen Sie das entsprechende Betriebssystem aus).
Für Ubuntu-Benutzer
oder
Für Centos-Benutzer
oder
Verwenden Sie für Windows pip, um tk zu installieren
Nach der Installation von tkinter starten Sie Ihren Pycharm neu und führen Sie Ihren Code aus. Es wird funktionieren
quelle
Versuchen Sie es,
import tkinter
da pycharm tkinter bereits für Sie installiert hat. Ich habe nach tkinter für Python installiert gesuchtSie können vielleicht versuchen:
als tkinter-Installationsmethode
Ich habe es versucht, es scheint kein Fehler zu sein, auf meinem Computer zu laufen, es zeigt erfolgreich die Abbildung. Vielleicht, weil Pycharm tkinter als Systempaket hat, müssen Sie es also nicht installieren. Wenn Sie tkinter jedoch nicht finden können, können Sie unter Tkdocs nachsehen, wie tkinter installiert werden kann. Tkinter ist ein Kernpaket für Python.
quelle
ModuleNotFoundError: No module named 'tkinter'
). Ich werde versuchen, tkinter auf andere Weise zu installieren.Einfache Installation
Für mich geht das.
quelle
Sie können die matplotlib über das Backend mit dem Befehl from
agg
to TkinterTKAgg
using ändernquelle
Linux Mint 19. Hat mir geholfen:
PS Kompilieren Sie den Python-Interpreter nach der Paketinstallation neu.
quelle
Nur für den Fall, dass dies jemandem hilft.
Python-Version: 3.7.7 Plattform: Ubuntu 18.04.4 LTS
Dies kam mit der Standard-Python-Version 3.6.9, aber ich hatte meine eigene Python-Version 3.7.7 darauf installiert (installiert, indem ich sie aus dem Quellcode erstellt habe).
tkinter funktionierte nicht, auch wenn
help('module')
tkinter in der Liste angezeigt wird.Die folgenden Schritte haben bei mir funktioniert:
sudo apt-get install tk-dev.
Erstellen Sie die Python neu: 1. Navigieren Sie zu Ihrem Python-Ordner und führen Sie die folgenden Überprüfungen aus:
sudo make -j 8
--- Hier sind 8 die Anzahl der Prozessoren. Überprüfen Sie Ihre mit demnproc
Befehl.Installation mit:
Verwenden Sie nicht sudo make install, da dadurch die Standardversion 3.6.9 überschrieben wird, die später möglicherweise unübersichtlich wird.
Eine Windows-Box wird angezeigt, Ihr tkinter ist jetzt bereit.
quelle
Nach dem Upgrade viele Pakete (
Spyder
3 bis 4,Keras
undTensorflow
und viele ihre Abhängigkeiten), hatte ich das gleiche Problem heute! Ich kann nicht herausfinden, was passiert ist; Aber die (conda-basierte) virtuelle Umgebung, die weiterhinSpyder
3 verwendete, hatte das Problem nicht. Obwohl die Installationtkinter
oder Änderung des Backends,via matplotlib.use('TkAgg)
wie oben gezeigt, oder dieser nette Beitrag zum Ändern des Backends das Problem möglicherweise lösen, sehe ich dies nicht als starre Lösung. Für mich war die Deinstallationmatplotlib
und Neuinstallation magisch und das Problem wurde gelöst.... dann installieren
Nach alledem könnte dies ein Problem bei der Paketverwaltung sein, und übrigens verwende ich beide
conda
undpip
, wann immer dies möglich ist.quelle
Als ich auf Spyder auf diesen Fehler stieß, wechselte ich von der zeilenweisen Ausführung meines Codes zum Hervorheben meines Plots für das Plotten von Code und der gleichzeitigen Ausführung. Voila, das Bild erschien.
quelle