2017-10-10 82 views
0

對於項目,我需要從可變數據源導入DICOM文件。我正在PyCharm的項目中工作,因爲我最終將迭代代碼,最終產品將成爲一個程序。我得到的錯誤是:使用PyCharm導入模塊時出現錯誤,使用Jupyter筆記本時不會出現


2017年10月10日08:58:16.307的Python [1010:26876] - [_setup的NSApplication:]:無法識別的選擇發送到實例0x105154320

2017- 10-10 08:58:16.311 Python [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

過程結束,退出代碼134(通過信號6中斷: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筆記本文件運行時,或導入定位在註釋行時,此確切代碼不會產生相同的錯誤。

我不知道爲什麼這是,我希望你可能知道爲什麼我得到這個錯誤。我希望將模塊導入到腳本的頂部,因爲,整潔和東西。

在此先感謝!

回答

1

我認爲這是matplotlib TkAgg後端的問題。爲matplotlib庫嘗試以下操作:

import matplotlib 
matplotlib.use("TkAgg") 
from matplotlib import pyplot as plt 
+0

感謝您的支持。這實際上完美的作品!並感謝您的快速回復。救星!出於好奇,我會如何知道這一點呢? 「TkAgg」後端有什麼問題? –

+0

沒問題!很高興我幫了忙。它取決於如何使用matplotlib。你是否想要彈出一個新窗口,或者是否想要將圖形集成到GUI中?您必須爲每個案例選擇特定的後端。還取決於你的操作系統,有一些支持的類型。 https://matplotlib.org/faq/usage_faq.html#what-is-a-backend 您可以在本網站上閱讀關於後端的更多信息 – anasvaf

相關問題