0

私が書いているpythonプログラムで、次のエラーが表示されます

Traceback (most recent call last):
File "/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx-   x86_64/Canopy.app/Contents/lib/python2.7/lib-tk/Tkinter.py", line 1470, in __call__
return self.func(*args)
File "/Users/lkloh/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 413, in button_release_event
FigureCanvasBase.button_release_event(self, x, y, num, guiEvent=event)
File "/Users/lkloh/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/backend_bases.py", line 1808, in button_release_event
self.callbacks.process(s, event)
File "/Users/lkloh/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/cbook.py", line 525, in process
del self.callbacks[s][cid]
KeyError: 103

これをデバッグする方法/何が間違っている可能性があるか考えていますか? エラー メッセージは、私が個人的に書いたコードのどこにも指していません。GUI ウィンドウを閉じた後にのみエラー メッセージが表示されますが、コードの機能が損なわれることはありませんが、エラー メッセージを修正したいと考えています。

エラーは私が書いている非常に大きなプログラムの一部であるため、すべてのコードを投稿することはできませんが、関連すると思われるコードを以下に示します。

def save(self, event):
    self.getSaveAxes()
    self.save_connect()

def getSaveAxes(self):
    saveFigure = figure(figsize=(8,1))
    saveFigure.clf()

    # size of save buttons
    rect_saveHeaders = [0.04,0.2,0.2,0.6]
    rect_saveHeadersFilterParams = [0.28,0.2,0.2,0.6]
    rect_saveHeadersOverride = [0.52,0.2,0.2,0.6]
    rect_saveQuit = [0.76,0.2,0.2,0.6]

    #initalize axes
    saveAxs = {}
    saveAxs['saveHeaders'] = saveFigure.add_axes(rect_saveHeaders)
    saveAxs['saveHeadersFilterParams'] = saveFigure.add_axes(rect_saveHeadersFilterParams)
    saveAxs['saveHeadersOverride'] = saveFigure.add_axes(rect_saveHeadersOverride)
    saveAxs['saveQuit'] = saveFigure.add_axes(rect_saveQuit)
    self.saveAxs = saveAxs

    self.save_connect()

    self.saveFigure = saveFigure
    show()

def save_connect(self):
    #set buttons
    self.bn_saveHeaders = Button(self.saveAxs['saveHeaders'], 'Save\nHeaders\nOnly')
    self.bn_saveHeadersFilterParams = Button(self.saveAxs['saveHeadersFilterParams'], 'Save Headers &\n Filter Parameters')
    self.bn_saveHeadersOverride = Button(self.saveAxs['saveHeadersOverride'], 'Save Headers &\nOverride Data')
    self.bn_saveQuit = Button(self.saveAxs['saveQuit'], 'Quit')

    #connect buttons to functions they trigger
    self.cid_saveHeaders = self.bn_saveHeaders.on_clicked(self.save_headers)
    self.cid_savedHeadersFilterParams = self.bn_saveHeadersFilterParams.on_clicked(self.save_headers_filterParams)
    self.cid_saveHeadersOverride = self.bn_saveHeadersOverride.on_clicked(self.save_headers_override)
    self.cid_saveQuit = self.bn_saveQuit.on_clicked(self.save_quit)

def save_quit(self, event):
    self.save_disconnect()
    close()
4

1 に答える 1

0

私は同じ問題を抱えていました。クックブック ライブラリ、特にコールバック マネージャ クラスで問題になるようです。私の場合、ファイルは次の場所にあります: /usr/lib/pymodules/python2.7/matplotlib/cbook.py

def process(self, s, *args, **kwargs): 
    """ 
    process signal *s*.  All of the functions registered to receive 
    callbacks on *s* will be called with *\*args* and *\*\*kwargs* 
    """ 
    if s in self.callbacks: 
        for cid, proxy in self.callbacks[s].items(): 
            # Clean out dead references 
            if proxy.inst is not None and proxy.inst() is None: 
               if cid in self.callbacks[s]: #<------- here 
                del self.callbacks[s][cid] 
            else: 
                proxy(*args, **kwargs) 

ここを見てください:http://matplotlib.1069221.n5.nabble.com/Re-Possible-bug-in-matplotlib-cbook-CallbackRegistry-td34057.html

于 2014-07-16T23:40:04.100 に答える