2017-03-08 5 views
0

kivy/tkinter/matplotlib를 사용하여 Windows에서 제대로 실행되지만 osx에서 몇 가지 문제가있는 코드를 일부 상속 받았습니다. 하나의 문제가 이미 해결되었습니다 in another question. 내가 askopenfilename를 호출하지 않는 한matplotlib 및 tkinter가있는 kivy의 NSException

import tkinter 
# tkinter._test() 

import matplotlib 
matplotlib.use("TkAgg") 
from matplotlib import pyplot as plt 
import kivy.core.window 

from tkinter.filedialog import askopenfilename 

askopenfilename(initialdir='/', title="Open files") 

나는 예외를하지 않는 : 나는 다음 실행할 때 나는 NSException 얻고있다. 이제는 "tkinter가 작동하지 않을 수도 있습니다"라고 생각했기 때문에 초기 tkinter._test()를 던져서 모든 것이 정상이라고 말했고 ... 이후 코드가 계속되면 예외가 발생하지 않고 모든 것이 실행됩니다. 벌금.

내 질문에, 일반적으로 이러한 NSExceptions의 루트와 특성은 무엇이며, tkinter._test()가 그 일을 일으켜서 발생하지 않을 수 있습니다.

그리고 원하지 않는 초기 테스트 팝업을 사용하지 않고 어떻게 복제하고 있습니까?

던져진 예외는 다음과 같습니다

2017-03-08 15:16:00.199 Python[31489:260345] -[SDLApplication _setup:]: unrecognized selector sent to instance 0x1021727f0 
2017-03-08 15:16:00.203 Python[31489:260345] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SDLApplication _setup:]: unrecognized selector sent to instance 0x1021727f0' 
*** First throw call stack: 
(
    0 CoreFoundation      0x00007fffa8716e7b __exceptionPreprocess + 171 
    1 libobjc.A.dylib      0x00007fffbd300cad objc_exception_throw + 48 
    ... 
    53 Python        0x0000000100000c34 Python + 3124 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

답변

0

그래서 나는 바보 느낌, 그 이유는() 단순히 _test이었다 루트 창을 생성하고, 그랜드 솔루션 가져 오기 후 루트 창을 만들 그냥 :

import tkinter 
root = tkinter.Tk() 
root.withdraw()