【发布时间】:2016-04-30 20:44:47
【问题描述】:
这个问题已经在here 和here 中提出过。但是,该解决方案并没有解决我的问题。
原来的错误是,当我尝试import matplotlib.pyplot时,我得到了:
Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件 "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", 第 114 行,在 _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() 文件 "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/backends/init.py", 第 32 行,在 pylab_setup 中 globals(),locals(),[backend_name],0) 文件 "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py", 第 24 行,在 from matplotlib.backends import _macosx RuntimeError: Python 未作为框架安装。 Mac OS X 后端将无法 如果 Python 未作为框架安装,则可以正常运行。见 Python 文档,了解有关将 Python 安装为 Mac OS X 上的框架。请重新安装 Python 作为框架, 或尝试其他后端之一。如果你正在使用 Matplotlib 在虚拟环境中,请参阅“在虚拟环境中使用 Matplotlib Matplotlib 常见问题解答中的环境”
我按照解决方案添加了一个带有代码的~/.matplotlib/matplotlibrc 文件:backend: TkAgg。这样做之后,我的错误变为:
/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib 正在使用 fc-list 构建字体缓存。这 可能需要一点时间。 warnings.warn('Matplotlib 正在构建字体 使用 fc-list 缓存。这可能需要一点时间。') objc[25120]: Class TKApplication 在两者中都实现了 /Users/XX/anaconda/lib/libtk8.5.dylib 和 /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk。中的一个 将使用两个。哪一个是未定义的。 objc[25120]:TKMenu 类是 在 /Users/XX/anaconda/lib/libtk8.5.dylib 和 /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk。中的一个 将使用两个。哪一个是未定义的。 objc [25120]:类 TKContentView 在两者中都实现了 /Users/XX/anaconda/lib/libtk8.5.dylib 和 /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk。中的一个 将使用两个。哪一个是未定义的。 objc[25120]:TKWindow 类 在 /Users/XX/anaconda/lib/libtk8.5.dylib 和 /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk。中的一个 将使用两个。哪一个是未定义的。
我不知道如何解决这个问题。我没有使用虚拟机。你可以帮帮我吗?谢谢!
PS:我发现通过添加:
导入 matplotlib
matplotlib.use('TkAgg')
在import matplotlib.pyplot 之前,它似乎有效。但是每次添加这两行代码很烦人......有谁知道发生了什么以及我该如何解决它?谢谢!
【问题讨论】:
-
我和你的情况类似。 (我在Mac OS X上,使用anaconda python,“TkAgg”后端,错误信息是一样的)当我运行脚本时,它就崩溃了。
标签: python macos python-2.7 matplotlib