这个问题以前在这里,也在这里被问过。但是,该解决方案无法解决我的问题。
原始错误是,当我尝试时import matplotlib.pyplot,我得到:
追溯(最近一次通话最近):文件“ /”、“Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py”中的行1,位于_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” matplotlib.backends中的第24行输入import _macosx RuntimeError:Python未作为框架安装。如果未将Python作为框架安装,则Mac OS X后端将无法正常运行。有关更多信息,请参见Python文档。在Mac OS X上安装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]:在/Users/XX/anaconda/lib/libtk8.5.dylib和/System/Library/Frameworks/Tk.framework/Versions/8.5/Tk中都实现了TKWindow类。将使用两者之一。哪一个未定义。
我不知道该如何解决。我没有使用虚拟机。你可以帮帮我吗?谢谢!
PS:我发现,通过添加:
导入matplotlib matplotlib.use('TkAgg')
之前import matplotlib.pyplot,它似乎有效。但是每次都添加这两行代码很烦人。有人知道发生了什么,如何解决?谢谢!
我在virtualenv中运行脚本。Python版本是3.5。
添加一行:
backend: TkAgg 在文件中:
~/.matplotlib/matplotlibrc 这样就解决了问题。
如果您想进一步了解为什么添加此功能可以解决此问题,则可以阅读有关自定义matplotlib的backend的信息。而TkAgg解决,因为它与Tkinter的依赖这个问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。