matplotlib: RuntimeError: Python n'est pas installé en tant que framework

cette question a déjà été posée, en ici également ici. Cependant, la solution n'a pas réglé le problème pour mon cas.

L'erreur d'origine est, lorsque j'essaie d' import matplotlib.pyplot j'ai:

Traceback (dernier appel le plus récent): fichier"", Ligne 1, en Fichier "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", ligne 114, _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() Fichier "/Users / XX/anaconda/lib / python2.7 / site-packages/matplotlib/backends/ init.py", ligne 32, à pylab_setup globals (), locals (), [backend_name], 0) File "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py", ligne 24, en de matplotlib.backends importation _macosx RuntimeError: Python n'est pas installé en tant que cadre. Le Mac OS X backend ne sera pas en mesure de fonctionne correctement si Python n'est pas installé comme un framework. Voir la Documentation Python pour plus d'informations sur l'installation de Python framework sur Mac OS X. s'il vous plaît réinstaller Python comme un framework, ou essayez l'une des autres backends. Si vous travaillez avec Matplotlib dans un environnement virtuel voir " Travailler avec Matplotlib en Virtuel environnement ' dans la FAQ Matplotlib

j'ai suivi les solutions pour ajouter un ~/.matplotlib/matplotlibrc le fichier avec le code suivant: backend: TkAgg. Après avoir fait cela, mon erreur a changé:

/ Users / XX/anaconda/lib / python2.7 / site-packages/matplotlib / font_manager.PY: 273: Avertissement à l'utilisateur: Matplotlib construit le cache de police en utilisant fc-list. Ce peut prendre un moment. avertissement.warn ('Matplotlib construit la police cache utilisant fc-list. Cela peut prendre un moment.") objc[25120]: Classe TKApplication est mise en œuvre dans les deux / Users / XX / anaconda/lib / libtk8.5.dylib et / System/Library/Frameworks / Tk.framework / Versions / 8.5 / Tk. L'un des deux seront utilisés. Ce qui est indéfini. objc[25120]: Classe TKMenu is mis en œuvre dans les deux /Users/XX/anaconda/lib/libtk8.5.dylib et / System/Library/Frameworks / Tk.framework / Versions / 8.5 / Tk. L'un des deux seront utilisés. Ce qui est indéfini. objc[25120]: Classe TKContentView est implémenté dans les deux / Users / XX / anaconda/lib / libtk8.5.dylib et / System/Library/Frameworks / Tk.framework / Versions / 8.5 / Tk. L'un des deux seront utilisés. Ce qui est indéfini. objc[25120]: Classe TKWindow est mis en œuvre dans les deux / Users / XX / anaconda/lib / libtk8.5.dylib et / System/Library/Frameworks / Tk.framework / Versions / 8.5 / Tk. L'un des deux seront utilisés. Ce qui est indéfini.

je n'ai aucune idée de comment résoudre ce problème. Je ne suis pas en utilisant une machine virtuelle. Pourriez-vous m'aider? Je vous remercie!

PS: j'ai découvert cela en ajoutant:

import matplotlib

matplotlib.use ('TkAgg')

avant import matplotlib.pyplot, il semble fonctionner. Mais en ajoutant ces deux lignes de codes à chaque fois, c'est ennuyeux... Quelqu'un sait ce qui se passe et comment je peux le réparer? Je vous remercie!

18
demandé sur Community 2016-01-24 18:10:39

5 réponses

j'exécute mon script dans virtualenv. La version Python est 3.5.

Ajouter une ligne:

backend: TkAgg

dans le fichier:

~/.matplotlib/matplotlibrc

Cela a résolu le problème.

40
répondu Joney 2016-10-20 07:44:57

ci-Dessous a fonctionné pour moi:

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

Référence: https://github.com/tensorflow/tensorflow/issues/2375

18
répondu Sibish 2018-01-22 04:27:30

je suis aussi d'avoir le même message d'erreur. Ce que j'ai fait est d'installer les paquets miniconda et d'utiliser pythonw. Python app était déjà installé sur mon mac. L'Installation est aussi simple que de casser un œuf. Frappe juste .sh file dans le terminal.

0
répondu Abin Jo Abraham 2018-04-14 06:57:23

j'ai eu les mêmes problèmes en python 2.7 virtualenv et j'ai réussi à résoudre ces simplement déclassement matplotlib à la version 2.1.0

0
répondu Massimiliano Caranzano 2018-09-03 17:20:20

j'ai installé le carnet Jupyter dans virtualenv et ci-dessous a travaillé pour moi:

Dans La Console:

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

Sur Le Portable:

import matplotlib

redémarrez le noyau:

dataframe.plot.hist()
...

À mon avis, il va corriger l'erreur.

0
répondu hakan 2018-09-05 21:18:36