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。