프로젝트의 경우 가변 데이터 소스에서 DICOM 파일을 가져와야합니다. 필자는 PyCharm 프로젝트를 진행 중이며, 코드를 반복하여 최종 제품이 프로그램이 될 것입니다. 내가 오류는 다음Jupyter Notebook을 사용할 때 발생하지 않는 PyCharm을 사용하여 모듈을 가져올 때 오류가 발생했습니다
2017년 10월 10일 08 : 58 : 16.307 파이썬 [1010 : 26876은] - [NSApplication의 _setup는 :] : 인식 할 수없는 선택기 인스턴스에 전송 0x105154320
2017- 10-10 08 : 58 : 16.311 파이썬 [1010 : 26876]는 *** 인해 캐치되지 않는 예외 'NSInvalidArgumentException'응용 프로그램 종료, 이유는 : - **
을 '[NSApplication는 _setup :] 알 수없는 선택기 예를 0x105154320로 전송' * 첫 번째 호출 스택 호출 :
(
0 CoreFoundation 0x00007fff9e92757b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00007fffb3b801da objc_exception_throw + 48
2 CoreFoundation 0x00007fff9e9a7f14 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3 CoreFoundation 0x00007fff9e89ac93 ___forwarding___ + 1059
4 CoreFoundation 0x00007fff9e89a7e8 _CF_forwarding_prep_0 + 120
5 Tk 0x000000010438cc02 TkpInit + 471
6 Tk 0x00000001043082a9 Tk_Init + 1794
7 _tkinter.cpython-36m-darwin.so 0x00000001041e0dfd Tcl_AppInit + 77
8 _tkinter.cpython-36m-darwin.so 0x00000001041de849 _tkinter_create + 889
9 Python 0x000000010006a7b8 _PyCFunction_FastCallDict + 552
10 Python 0x00000001000f4164 call_function + 612
11 Python 0x00000001000f5b74 _PyEval_EvalFrameDefault + 5604
12 Python 0x00000001000f3500 _PyEval_EvalCodeWithName + 2720
13 Python 0x00000001000f43c7 _PyFunction_FastCallDict + 439
14 Python 0x000000010000ea54 _PyObject_FastCallDict + 356
15 Python 0x000000010000f120 _PyObject_Call_Prepend + 208
16 Python 0x000000010000e443 PyObject_Call + 99
17 Python 0x0000000100089af1 slot_tp_init + 81
18 Python 0x00000001000802b4 type_call + 212
19 Python 0x000000010000e9a4 _PyObject_FastCallDict + 180
20 Python 0x00000001000f3fa5 call_function + 165
21 Python 0x00000001000f5b74 _PyEval_EvalFrameDefault + 5604
22 Python 0x00000001000f3eae fast_function + 606
23 Python 0x00000001000f414b call_function + 587
24 Python 0x00000001000f5b74 _PyEval_EvalFrameDefault + 5604
25 Python 0x00000001000f3500 _PyEval_EvalCodeWithName + 2720
26 Python 0x00000001000f3d2b fast_function + 219
27 Python 0x00000001000f414b call_function + 587
28 Python 0x00000001000f5b74 _PyEval_EvalFrameDefault + 5604
29 Python 0x00000001000f3500 _PyEval_EvalCodeWithName + 2720
30 Python 0x00000001000f43c7 _PyFunction_FastCallDict + 439
31 Python 0x000000010000ea54 _PyObject_FastCallDict + 356
32 Python 0x000000010000f120 _PyObject_Call_Prepend + 208
33 Python 0x000000010000e443 PyObject_Call + 99
34 Python 0x0000000100089af1 slot_tp_init + 81
35 Python 0x00000001000802b4 type_call + 212
36 Python 0x000000010000e9a4 _PyObject_FastCallDict + 180
37 Python 0x00000001000f3fa5 call_function + 165
38 Python 0x00000001000f5b74 _PyEval_EvalFrameDefault + 5604
39 Python 0x00000001000f3500 _PyEval_EvalCodeWithName + 2720
40 Python 0x00000001000f3d2b fast_function + 219
41 Python 0x00000001000f414b call_function + 587
42 Python 0x00000001000f5b74 _PyEval_EvalFrameDefault + 5604
43 Python 0x00000001000f3500 _PyEval_EvalCodeWithName + 2720
44 Python 0x00000001000f3d2b fast_function + 219
45 Python 0x00000001000f414b call_function + 587
46 Python 0x00000001000f5b74 _PyEval_EvalFrameDefault + 5604
47 Python 0x00000001000f3500 _PyEval_EvalCodeWithName + 2720
48 Python 0x00000001000f36a4 PyEval_EvalCode + 100
49 Python 0x000000010013000e PyRun_FileExFlags + 206
50 Python 0x00000001001302af PyRun_SimpleFileExFlags + 447
51 Python 0x0000000100149b3a Py_Main + 3914
52 Python 0x0000000100000dfe Python + 3582
53 Python 0x0000000100000c34 Python + 3124
54 ??? 0x0000000000000002 0x0 + 2
) 의 libC++ abi.dylib : 형 캐치되지 제외 종료 NSException
프로세스 신호 (6)에 의해 인터럽트 종료 코드 (134) (마무리 : SIGABRT)
코드 그게 나에게 오류가 발생합니다 :
import pydicom
from tkinter import filedialog
from matplotlib import pylab
"""Get fileName"""
#from tkinter import filedialog
filename = filedialog.askopenfilename()
"""Import DICOM File"""
#import pydicom
df = pydicom.read_file(filename)
dim = df.pixel_array
"""Show DICOM Image"""
#from matplotlib import pylab
pylab.imshow(dim, cmap="gray")
pylab.show()
이 정확한 코드는 jupyter 노트북 파일로 실행될 때 또는 가져 오기가 주석 처리 된 행에 위치 할 때 동일한 오류를 생성하지 않습니다.
나는 이것이 왜 그런지 전혀 모르겠다. 왜 나는이 오류가 발생하는지 알 수 있기를 바랍니다. 나는 스크립트의 맨 위에서 모듈 가져 오기를하고 싶습니다. 왜냐하면 잘, 깔끔함과 물건 때문입니다.
미리 감사드립니다.
감사합니다. 이것은 실제로 완벽하게 작동합니다! 그리고 빠른 답장을 보내 주셔서 감사합니다. 생명의 은인! 그냥 호기심에서, 나는 이것을 어떻게 다르게 알았 을까요? "TkAgg"백엔드의 문제점은 무엇입니까? –
문제가 없습니다! 기꺼이 도와 줬어. 그것은 matplotlib를 사용하는 방법에 달려 있습니다. 새 창이 팝업되도록 하시겠습니까, 아니면 플롯을 GUI에 통합 시키길 원하십니까? 각 사례에 대해 특정 백엔드를 선택해야합니다. 또한 OS에 따라 지원되는 몇 가지 유형이 있습니다. https://matplotlib.org/faq/usage_faq.html#what-is-a-backend 백엔드에 대한 자세한 내용은이 사이트에서 읽을 수 있습니다. – anasvaf