web-dev-qa-db-de.com

matplotlib: RuntimeError: Python wird nicht als Framework installiert

Diese Frage wurde zuvor in hier , auch hier gestellt. Die Lösung hat das Problem für meinen Fall jedoch nicht behoben. 

Der ursprüngliche Fehler ist, wenn ich import matplotlib.pyplot versuche, habe ich:

Traceback (letzter Anruf zuletzt): Datei "", Zeile 1, in Datei "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", Zeile 114, in _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup () Datei "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/backends/init .py", Zeile 32 in pylab_setup globals (), local (), [backend_name], 0) Datei "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py", Zeile 24, in from matplotlib.backends import _macosx RuntimeError: Python wird nicht als Framework installiert. Das Mac OS X-Backend kann nicht funktionieren korrekt, wenn Python nicht als Framework installiert ist. Siehe die Weitere Informationen zur Installation von Python als .__ finden Sie in der Python-Dokumentation. Framework unter Mac OS X. Installieren Sie entweder Python als Framework neu oder versuchen Sie es mit einem der anderen Backends. Wenn Sie mit Matplotlib arbeiten in einer virtuellen Umgebung siehe 'Arbeiten mit Matplotlib in Virtual Umgebungen “in den Matplotlib-FAQs

Ich folgte den Lösungen, um eine ~/.matplotlib/matplotlibrc-Datei mit dem Code hinzuzufügen: backend: TkAgg. Nachdem ich das getan hatte, änderte sich mein Fehler in:

/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib erstellt den Font-Cache mit fc-list. Diese kann einen Moment dauern. warnings.warn ('Matplotlib erstellt den Font Cache mit fc-list. Dies kann einen Moment dauern.') objc [25120]: Klasse TKApplication ist in beiden .__ implementiert. /Users/XX/anaconda/lib/libtk8.5.dylib und /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. Einer der zwei werden verwendet. Welches ist undefiniert. objc [25120]: Klasse TKMenu ist sowohl in /Users/XX/anaconda/lib/libtk8.5.dylib als auch in .__ implementiert. /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. Einer der zwei werden verwendet. Welches ist undefiniert. objc [25120]: Klasse TKContentView ist in beiden .__ implementiert. /Users/XX/anaconda/lib/libtk8.5.dylib und /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. Einer der zwei werden verwendet. Welches ist undefiniert. objc [25120]: Klasse TKWindow ist in /Users/XX/anaconda/lib/libtk8.5.dylib und .__ implementiert. /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. Einer der zwei werden verwendet. Welches ist undefiniert.

Ich habe keine Ahnung, wie ich das beheben kann. Ich verwende keine virtuelle Maschine. Kannst du mir helfen? Vielen Dank! 

PS: Ich habe das herausgefunden, indem ich Folgendes hinzugefügt habe: 

matplotlib importieren
matplotlib.use ('TkAgg')

vor import matplotlib.pyplot scheint es zu funktionieren. Aber das Hinzufügen dieser beiden Codezeilen ist ärgerlich ... Weiß jemand, was los ist und wie ich es reparieren kann? Vielen Dank! 

27
KDD

Ich führe mein Skript in Virtualenv aus. Python-Version ist 3.5.

Eine Zeile hinzufügen:

backend: TkAgg

im Ordner:

~/.matplotlib/matplotlibrc

Dies hat das Problem gelöst.

57
Joney

Unten arbeitete für mich:

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

Referenz: https://github.com/tensorflow/tensorflow/issues/2375

27
Sibish

Ich habe Jupyter Notebook in virtualenv installiert und arbeitete für mich:

An der Konsole:

echo "backend: TkAgg" >> ~/.matplotlib/matplotlibrc
pip install matplotlib==2.1.0

Auf dem Notebook:

import matplotlib

Starten Sie den Kernel neu:

dataframe.plot.hist()
...

Meiner Meinung nach wird es den Fehler beheben.

3
hakan

Ich hatte die gleichen Probleme mit Python 2.7 in virtualenv und konnte diese Probleme beheben, indem ich matplotlib einfach auf Version 2.1.0 heruntergestuft habe

Ich hatte auch den gleichen Fehler. Ich habe Miniconda-Pakete installiert und pythonw verwendet. Die Python-App war bereits auf meinem Mac installiert. Die Installation ist so einfach wie das Brechen eines Eies. Bash die .sh-Datei im Terminal.

0
Abin Jo Abraham