matplotlib:RuntimeError:Python未作为框架安装

时间:2016-01-24 15:10:39

标签: python macos python-2.7 matplotlib

此问题之前曾在herehere中提出过。但是,解决方案并没有解决我的问题。

原始错误是,当我尝试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行,在       来自matplotlib.backends import _macosx RuntimeError:Python未作为框架安装。 Mac OS X后端将无法使用   如果没有将Python安装为框架,则功能正常。见   有关将Python安装为的更多信息,请参阅Python文档   Mac OS X上的框架。请重新安装Python作为框架,   或尝试其他后端之一。如果您正在使用Matplotlib   在虚拟环境中,请参阅“在虚拟环境中使用Matplotlib”   Matplotlib FAQ中的环境

我按照解决方案添加了~/.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之前,似乎有效。但每次添加这两行代码都很烦人...有谁知道发生了什么以及如何解决它?谢谢!

6 个答案:

答案 0 :(得分:72)

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

添加一行:

backend: TkAgg

在档案中:

~/.matplotlib/matplotlibrc

这解决了这个问题。

答案 1 :(得分:29)

以下为我工作:

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

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

答案 2 :(得分:4)

我在virtualenv中安装了Jupyter Notebook,以下版本对我有用:

在控制台上:

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

在笔记本电脑上:

import matplotlib

重新启动内核:

dataframe.plot.hist()
...

我认为它将解决该错误。

答案 3 :(得分:1)

我在virtualenv中的python 2.7中遇到了相同的问题,我设法通过简单地将matplotlib降级到版本2.1.0来解决了这些问题

答案 4 :(得分:0)

我也遇到了同样的错误。我所做的是安装miniconda包并使用pythonw。 Python应用程序已经安装在我的mac中。安装就像打破鸡蛋一样简单。只需在终端中压缩.sh文件。

答案 5 :(得分:0)

我使用的是pyenv,因此matplotlibrc路径不在主目录中,因此我创建了此脚本以找出路径,并将backend更改为{{1} }:

Tkagg

尽管如此,该脚本仍应与系统上的任何python一起使用。