matplotlib RuntimeError:Python 未作为框架安装

新手上路,请多包涵

这个问题之前有人问过,在 这里,也在 这里。但是,解决方案并没有解决我的问题。

最初的错误是,当我尝试 import matplotlib.pyplot 时,我得到:

追溯(最近调用最后):文件“”,第 1 行,在文件“/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 行,来自 matplotlib.backends import _macosx RuntimeError:Python 未安装为框架。如果 Python 未作为框架安装,Mac OS X 后端将无法正常运行。有关在 Mac OS X 上将 Python 安装为框架的更多信息,请参阅 Python 文档。请重新安装 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]: 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 之前,它似乎有效。但是每次都添加这两行代码很烦人……

这是怎么回事,我该如何解决?

原文由 KDD 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 545
2 个回答

我在 virtualenv 中运行我的脚本。 Python 版本是 3.5。

添加一行:

 backend: TkAgg

在文件中:

 ~/.matplotlib/matplotlibrc

这解决了问题。

如果你想知道更多关于为什么添加这个可以解决问题,你可以阅读 自定义 matplotlib 的后端TkAgg 解决了这个问题,因为它依赖于 Tkinter。

原文由 Joney 发布,翻译遵循 CC BY-SA 4.0 许可协议

下面为我工作:

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

参考: https ://github.com/tensorflow/tensorflow/issues/2375

原文由 Sibish 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题