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!
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.
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
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.
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
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.