2016-01-24 8 views
3

Этот вопрос задан раньше, в here, также here. Однако решение не устранило проблему для моего случая.matplotlib: RuntimeError: Python не установлен как фреймворк

оригинальная ошибка, когда я пытаюсь import matplotlib.pyplot, я получил:

Traceback (most recent call last): File "", line 1, in File "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", line 114, in _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() File "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/backends/init.py", line 32, in pylab_setup globals(),locals(),[backend_name],0) File "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py", line 24, in from matplotlib.backends import _macosx RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are Working with Matplotlib in a virtual enviroment see 'Working with Matplotlib in Virtual environments' in the Matplotlib FAQ

Я последовал за решения, чтобы добавить ~/.matplotlib/matplotlibrc файл с кодом: backend: TkAgg. После этого моя ошибка изменилась на:

/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment. warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.') objc[25120]: Class TKApplication is implemented in both /Users/XX/anaconda/lib/libtk8.5.dylib and /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined. objc[25120]: Class TKMenu is implemented in both /Users/XX/anaconda/lib/libtk8.5.dylib and /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined. objc[25120]: Class TKContentView is implemented in both /Users/XX/anaconda/lib/libtk8.5.dylib and /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined. objc[25120]: Class TKWindow is implemented in both /Users/XX/anaconda/lib/libtk8.5.dylib and /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined.

Я понятия не имею, как это исправить. Я не использую виртуальную машину. Не могли бы вы помочь мне? Спасибо!

PS: Я узнал, что, добавляя:

import matplotlib
matplotlib.use('TkAgg')

перед тем import matplotlib.pyplot, кажется, работает. Но добавлять эти две строки кодов каждый раз раздражает ... Кто-нибудь знает, что происходит и как я могу это исправить? Спасибо!

+0

Я нахожусь в таком же состоянии с вами. (Я нахожусь в Mac OS X, используя anaconda python, бэкэнд TkAgg, сообщение об ошибке одно и то же) Когда я запускаю скрипт, он просто разбился. –

ответ

11

Я запускаю свой скрипт в virtualenv. Версия Python - 3.5.

Добавить строку:

backend: TkAgg 

в файле:

~/.matplotlib/matplotlibrc 

Это решило проблему.

+1

не работает для python 2.7 – Sibish