macosx下的python matplotlib框架?

Nei*_*l G 59 python matplotlib fink

我收到此错误:

/sw/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py:235:UserWarning:Python未作为框架安装.如果未将Python安装为框架,则MacOSX后端可能无法正常工作.有关在Mac OS X上安装Python作为框架的更多信息,请参阅Python文档

我使用fink安装了python27,并且使用默认的matplotlib是使用macosx框架.

Iro*_*low 62

有些用户可能不想更改所有脚本的后端.这个页面 - http://matplotlib.org/faq/usage_faq.html#what-is-a-backend - 告诉另一种方式:

import matplotlib
matplotlib.use('TkAgg')
Run Code Online (Sandbox Code Playgroud)

您必须在导入matplotlib依赖的子包或第三方包之前执行此操作matplotlib.


Jon*_*han 29

您可以选择使用Agg后端,无需额外安装任何东西.只要把backend : Agg~/.matplotlib/matplotlibrc

  • 当使用`pyenv`时,这个答案对我很有用. (5认同)

Ned*_*ily 16

有两种方法可以在Mac OS X上构建和安装Python.其中一种方法是作为传统的平面Unix-y共享库.另一个被称为framework安装,类似于其中所有的部件目录(对OS X其他框架文件布局include,lib,bin)的产品被安装为主体的框架目录下的子目录.该Fink项目使用Unix共享库方法安装Pythons.大多数其他分销商,包括Apple提供的OS X中的Pythons,python.org安装程序和MacPorts项目,都会安装frameworkPython的版本.框架安装的一个优点是它可以与需要窗口管理器连接(通常是GUI相关的接口)的各种OS X API调用一起正常工作,因为Python解释器被打包为框架内的应用程序包.

如果你确实需要matplotlib中需要GUI函数的函数,最简单的方法可能是切换到MacPorts,它也会打包matplotlib(port py27-matplotlib)及其依赖项.如果是这样,请注意不要在Fink和之间混合包装MacPorts.除非你非常小心,否则最好坚持使用其中一个.相应地调整shell路径; 删除所有Fink软件包并安装MacPorts版本是最安全的.

  • 那么你会为使用Fink(python2.7,numpy-py27,matplotlib-py27,ipython-py27)安装在他的新mac上的人推荐什么?我还需要一些我只能在Fink上获得的软件包,而且它们在MacPorts上不存在. (2认同)

Dav*_*ers 11

切换到OSX 10.10(Yosemite)时,这会显示给我.我通过切换到WXAgg后端来修复它.

fink install wxpython300-py27
mkdir ~/.matplotlib
echo "backend : WXAgg" >>~/.matplotlib/matplotlibrc
Run Code Online (Sandbox Code Playgroud)

http://matplotlib.org/1.3.0/faq/usage_faq.html#what-is-a-backend

如果在那里找不到matplotlibrc文件,请输入matplotlibrc并检查位置:

import matplotlib as mpl
mpl.get_configdir()
Run Code Online (Sandbox Code Playgroud)


小智 10

我在我的计算机上使用Anaconda分发的Python和使用Python 3.4的虚拟conda环境来解决这个问题.

在做了"pip install matplotlib"之后,我可以在我的代码中导入matplotlit,但是当我尝试绘制图像时会出错.

所以我回到终端并使用了推荐的conda命令用于Anaconda Python("conda install matplotlib"),问题自行解决(请记住,这完全在我使用conda命令工具在http创建的环境中)://conda.pydata.org/docs/using/envs.html).我的系统正在运行Mac OSX 10.10.5.


Der*_*ill 7

我正在运行带有pyenv的 Python 3.7.1的OSX 10.14 。

我无法得到任何的后端在其他的答案中所列为我工作(TkAggWXAggmacosx)。

相反,起作用的是较新的Qt5Agg后端,该后端已安装pip install pyqt5,然后创建一个~/.matplotlib/matplotlibrc包含的文件backend: Qt5Agg(根据其他答案)。


小智 5

通过以下代码序列导入库对我有用。这样就不需要创建新文件夹了:

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)