此问题之前已在here,也是here中提出过 . 但是,解决方案并没有解决我的问题 .
原来的错误是,当我尝试 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:我发现通过添加:
import matplotlib matplotlib.use('TkAgg')
在 import matplotlib.pyplot
之前,它似乎有效 . 但每次添加这两行代码都很烦人...有谁知道发生了什么以及如何解决它?谢谢!
5 回答
我在virtualenv中运行我的脚本 . Python版本是3.5 .
添加一行:
在文件中:
这解决了这个问题 .
以下为我工作:
参考:https://github.com/tensorflow/tensorflow/issues/2375
我也有同样的错误 . 我所做的是安装miniconda包并使用pythonw . Python应用程序已经安装在我的mac中 . 安装就像打破鸡蛋一样简单 . 只需在终端中压缩.sh文件即可 .
我在virtualenv中的python 2.7中遇到了同样的问题,我设法通过简单地将matplotlib降级到版本2.1.0来解决这些问题
我在virtualenv中安装了Jupyter Notebook,下面为我工作:
At Console:
On Notebook:
Restart the kernel:
在我看来,它将修复错误 .