Python开发环境Wing IDE的matplotlib 2D绘图库代码调试技巧
Wing IDE是一个集成开发环境,可用于加快matplotlib2D图形库的Python代码的编写和调试进程。Wing IDE提供自动完成、调用提示、调试器,以及许多其他功能,可帮助用户编写、浏览和了解Python代码。
工作于Python Shell
matplotlib的用户经常会交互式地工作于Python命令行shell。 例如:
from pylab import plot,show,close x = range(10) plot(x) show() y = [2, 8, 3, 9, 4] plot(y) close()
在某些环境中,直到关闭绘图窗口,上面show()调用都会阻塞。默认情况下Wing IDE将会修改matplotlib事件循环的方式,当被输入到集成的Python Shell中时,show()调用将不会阻塞,绘图窗口将会一直更新作为额外的命令类型。这样可以更容易的交互测试新代码和所绘制的图形。
编辑器代码可以使用Source菜单中的Python Shell项目Evaluate File在Python Shell执行,或者是使用编辑器Python Shell项目Evaluate Selection在Python Shell执行。默认情况下,Python Shell会在评估整个文件之前重启;这可以在Python Shell的选项菜单中禁用。
这个特殊的事件循环支持已经在TkAgg、GTKAgg、WXAgg(wxPython 2.5 +)和Qt4Agg后端中进行了实施,暂时不支持其它的后端。
解决问题
如果在Python Shell或Debug Probe中输入show()模块,如果plots无法更新,或如果遇到matplotlib其他事件循环工作问题,可以:
(1) 在签发其它命令之前,尝试以下方式切换到另一个后端:
import matplotlib matplotlib.use('TkAgg')
(2) 尝试在Extensions选项卡中的Project Properties完全禁用matplotlib支持,然后从选项菜单重新启动Python Shell并重启调试过程。这可以防止在Python Shell和Debug Probe中交互使用matplotlib。