我正在使用pynetdicom库来接收和处理医学 dicom 图像。在回调函数“on_association_released”中进行处理。但是,在接收某些研究时,它会由于似乎是子线程崩溃而导致 Python 崩溃。
从 OSX 崩溃报告来看,似乎是 libdispatch 库是原因,但不确定如何或为什么。
这是函数:
def on_association_released(self):
if not self.auto_process:
self.incoming = []
return
dicoms = [Dicom(f=x) for x in self.incoming]
self.incoming = []
incoming = Study(dicom_list=dicoms)
log.info("Incoming study: {incoming}".format(**locals()))
completed_tasks = {}
time.sleep(1)
for task in AVAILABLE_PROCESS_TASKS:
log.info("Trying task: {task}".format(**locals()))
process_task = task(study=incoming)
try:
if process_task.valid:
log.info("{incoming} is valid for {process_task}".format(**locals()))
try:
process_task.process()
except Exception as e:
log.warning(
'Failed to perform {process_task} on {incoming}: \n {e}'.format(**locals())
)
else:
log.info("Completed {process_task} for …Run Code Online (Sandbox Code Playgroud)