[我最初是在serverfault中发布的,但有人建议我在这里发布它。]
Matplotlib是一个用于数据可视化的python库。当我试图在屏幕上显示图形时,我收到以下错误/警告:
2012-12-21 16:40:05.532 python[9705:903] *** __NSAutoreleaseNoPool(): Object 0x103e25d80 of class NSCFArray autoreleased with no pool in place - just leaking
2012-12-21 16:40:05.534 python[9705:903] *** __NSAutoreleaseNoPool(): Object 0x103e26820 of class __NSFastEnumerationEnumerator autoreleased with no pool in place - just leaking
2012-12-21 16:40:05.535 python[9705:903] *** __NSAutoreleaseNoPool(): Object 0x103e9f080 of class NSObject autoreleased with no pool in place - just leaking
FWIW,生成这些结果的一种方法如下所示;所示的所有步骤(包括调用ipython)都来自matplotlib教程:
^{pr2}$另外,FWIW,我观察到python+numpy+matplotlib+ipython的多种安装方式(在同一台机器上)完全相同的行为,包括使用系统提供的python的安装,使用homebrew
安装的python的安装,或者那些使用python直接从源代码安装到主目录以外的位置的程序。在
你知道会发生什么吗?或者我能做些什么吗?在
它试图对Cocoa做些什么,但是Cocoa还没有真正初始化。您可以先运行以下命令,使错误静音并解决问题:
在这之后:
^{pr2}$这需要PyObjC。不幸的是,这可能只允许每个IPython会话显示一个绘图。您可能希望尝试IPython笔记本,它消除了对Cocoa的依赖。在
我也遇到了同样的问题,我找到的一个解决方案是添加以下行:
在第一个打印命令之前。这将打开交互式打印模式,错误消息将消失。这只对我在命令行绘图时有效,如果我在脚本中执行ion()然后show(),则绘图根本不会显示出来,如果我不使用ion(),我可以看到我的绘图,但会收到错误消息。这只是在更新到1.2.0版之后才发生的。在
相关问题 更多 >
编程相关推荐