1

我开发了一个GitHub回购,其示例为multiprocess script in python2.7 for plotting。基本上,脚本分配一个进程来生成数据,并且这些数据通过队列传递给负责生成该图的第二个进程。当我运行示例'multiproc_processIPC.py'或'multiproc_poolQ​​UEUE.py'时,出现以下错误。 请注意,在将我的Mac升级到OSX Sierra后出现此错误。 有没有人有关于这个问题起源的线索? 任何帮助将高度赞赏Mac OSX Sierra中的Python多进程绘图问题 - 异常类型EXC_BAD_INSTRUCTION

=====错误报告=====

过程:python2.7 [82890] 路径:/用户/用户/ * /蟒 标识符:python2.7 版本:??? 编码类型:X86-64(母语) 父进程:python2.7 [82883] 负责:python2.7 [82890] 用户ID:501

日期/时间:2016年12月4日22点34 :29.874 +0100 OS版本:Mac OS X的10.12.1(16B2555) 报告版本:12 匿名UUID:689587A6-D759-0F81-671D-1079942B7C42

清醒时间自启动:9000秒

系统完整性保护:启用

崩溃螺纹:0调度队列:com.apple.main线程

异常类型:EXC_BAD_INSTRUCTION(SIGILL) 异常代码:0x0000000000000001,0x0000000000000000 异常注:EXC_CORPSE_NOTIFY

终止信号:非法指令:4 终止原因:命名空间信号编码为0x4 终止处理:EXC处理机[0]

特定应用信息: BUG IN CLIENT LIBDISPATCH作者:_dispatch_main_queue_callback_ 4CF从错误的线程 称为坠毁,机上叉EXEC预

线程0的孩子侧损毁::调度队列:com.apple.main线程 0 libdispatch.dylib 0x00007fff8f9ddd21 _dispatch_main_queue_callback_4CF + 1291 1 com.apple。的CoreFoundation 0x00007fff7a97abe9 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 9 2 com.apple.CoreFoundation 0x00007fff7a93c00d __CFRunLoopRun + 2205 3 com.apple.CoreFoundation 0x00007fff7a93b514 CFRunLoopRunSpecific + 420 4 com.apple.HIToolbox 0x00007fff79ed8fbc RunCurrentEventLoopInMode + 240 5 com.apple.HIToolbox 0x00007fff79ed8df1 ReceiveNextEventC ommon + 432 6 com.apple.HIToolbox 0x00007fff79ed8c26 _BlockUntilNextEventMatchingListInModeWithFilter + 71 7 com.apple.AppKit 0x00007fff785c2b79 _DPSNextEvent + 1093 8 com.apple。了AppKit 0x00007fff78cd81c3 - [的NSApplication(NSEvent)_nextEventMatchingEventMask:untilDate:inMode:出队:] + 1637 9 Tk的0x0000000104b01285 0x104a47000 + 762501 10 Tk的0x0000000104b0171f 0x104a47000 + 763679 11的Tcl 0x00000001049d75f8 Tcl_DoOneEvent + 317 12 Tk的0x0000000104a55932 0x104a47000 + 59698 13的Tcl 0x00000001049695b7 0x10495b000 + 58807 14的Tcl 0x0000000104969e46 Tcl_EvalObjv + 59 15 _tkinter.so 0x00000001037dfe39 Tkapp_Call + 617 16 libpython2.7.dylib 0x00000001000a3302 PyEval_EvalFrameEx + 3730 17 libpython2.7.dylib 0x00000001000ac913 fast_function + 179 18 libpython2.7.dylib 0x00000001000a338a PyEval_EvalFra meEx + 3866 19 libpython2.7.dylib 0x00000001000ac7dc PyEval_EvalCodeEx + 2092 20 libpython2.7.dylib 0x00000001000ac988 fast_function + 296 21 libpython2.7.dylib 0x00000001000a338a PyEval_EvalFrameEx + 3866 22 libpython2.7.dylib 0x00000001000ac7dc PyEval_EvalCodeEx + 2092 23 libpython2 .7.dylib 0x00000001000ac988 fast_function + 296 24 libpython2.7.dylib 0x00000001000a338a PyEval_EvalFrameEx + 3866 25 libpython2.7.dylib 0x00000001000ac7dc PyEval_EvalCodeEx + 2092 26 libpython2.7.dylib 0x0000000100035c1b FUNCTION_CALL + 347 27 libpython2.7.dylib 0x000000010000c761 PyObject_Call + 97 28 libpython2.7.dylib 0x00000001000a3cea PyEval_EvalFrameEx + 6 266 29 libpython2.7.dylib 0x00000001000ac7dc PyEval_EvalCodeEx + 2092 30 libpython2.7.dylib 0x00000001000ac988 fast_function + 296 31 libpython2.7.dylib 0x00000001000a338a PyEval_EvalFrameEx + 3866 32 libpython2.7.dylib 0x00000001000ac7dc PyEval_EvalCodeEx + 2092 33 libpython2.7名为.dylib 0x0000000100035c1b FUNCTION_CALL + 347 34 libpython2.7.dylib 0x000000010000c761 PyObject_Call + 97 35 libpython2.7.dylib 0x000000010001e7d7 instancemethod_call + 503 36 libpython2.7.dylib 0x000000010000c761 PyObject_Call + 97 37 libpython2.7.dylib 0x000000010006673a slot_tp_init + 106 38 libpython2.7.dylib 0x0000000100062465 type_call + 229 39 libpython2.7.dylib 0x000000010000c761 PyObject_Call + 97 40 libpython2.7.dylib 0x00000001000a35a5 PyEval_EvalFrameEx + 4405 41 libpython2.7.dylib 0x00000001000ac7dc PyEval_EvalCodeEx + 2092 42 libpython2.7.dylib 0x0000000100035c1b FUNCTION_CALL + 347 43 libpython2.7。 dylib 0x000000010000c761 PyObject_Call + 97 44 libpython2.7.dylib 0x000000010001e7d7 instancemethod_call + 503 45 libpython2.7.dylib 0x000000010000c761 PyObject_Call + 97 46 libpython2.7.dylib 0x000000010006673a slot_tp_init + 106 47 libpython2.7.dylib 0x0000000100062465 type_call + 229 48 libpython2.7.dylib 0x000000010000c761 PyObject_Call + 97 49 libpython2.7.dylib 0x00000001000a3cea PyEval_EvalFrameEx + 6266 50 libpython2.7.dylib 0x00000001000ac913 fast_function + 179 51 libpython2.7.dylib 0x00000001000a338a PyEval_EvalFrameEx + 3866 52 libpython2.7.dylib 0x00000001000ac913 fast_function + 179 53 libpython2.7.dylib 0x00000001000a338a PyEval_EvalFrameEx + 3866 54 libpython2.7.dylib 0x00000001000ac7dc PyEval_EvalCodeEx + 2092 55 libpython2.7.dylib 0x0000000100035c1b FUNCTION_CALL + 347 56 libpython2.7.dylib 0x000000010000c761 PyObject_Call + 97 57 libpython2.7.dylib 0x000000010001e7d7 instancemethod_call + 503 58 libpython2.7.dylib 0x000000010000c761 PyObject_Call + 97 59 libpython2.7。dylib 0x000000010006673a slot_tp_init + 106 60 libpython2.7.dylib 0x0000000100062465 type_call + 229 61 libpython2.7.dylib 0x000000010000c761 PyObject_Call + 97 62 libpython2.7.dylib 0x00000001000a35a5 PyEval_EvalFrameEx + 4405 63 libpython2.7.dylib 0x00000001000ac913 fast_function + 179 64 libpython2.7.dylib 0x00000001000a338a PyEval_EvalFrameEx + 3866 65 libpython2.7.dylib 0x00000001000ac7dc PyEval_EvalCodeEx + 2092个 66 libpython2.7.dylib 0x00000001000ac856 PyEval_EvalCode + 54 67 libpython2.7.dylib 0x00000001000cb3d4 PyRun_FileExFlags + 164 68 libpython2.7.dylib 0x00000001000cc709 PyRun_SimpleFileExFlags + 409 69 libpython2.7.dylib 0x000 00001000e01ca Py_Main + 2938 70蟒0x0000000100000f14启动+ 52

线程1: 0 libsystem_kernel.dylib 0x00007fff8fb354e6 __workq_kernreturn + 10 1 libsystem_pthread.dylib 0x00007fff8fc1d622 _pthread_wqthread + 1023 2 libsystem_pthread.dylib 0x00007fff8fc1d211 start_wqthread + 13

螺纹2: 0 libsystem_kernel.dylib 0x00007fff8fb354e6 __workq_kernreturn + 10 1 libsystem_pthread.dylib 0x00007fff8fc1d622 _pthread_wqthread + 1023 2 libsystem_pthread.dylib 0x00007fff8fc1d211 start_wqthread + 13

线程3: 0 libsystem_kernel.dylib 0x00007fff8fb354e6 __workq_kernreturn + 10 1 libsystem_pthread.dylib 0x00007fff8fc1d7b5 _pthread_wqthread + 1426 2 libsystem_pthread.dylib 0x00007fff8fc1d211 start_wqthread + 13

线程4: 0 libsystem_kernel.dylib 0x00007fff8fb34f4e __select + 10 1的Tcl 0x0000000104a08271 0x10495b000 + 709233 2 libsystem_pthread.dylib 0x00007fff8fc1daab _pthread_body + 180 3 libsystem_pthread.dylib 0x00007fff8fc1d9f7 _pthread_start + 286 4 libsystem_pthread.dylib 0x00007fff8fc1 D221 thread_start + 13

螺纹5 :: com.apple.NSEventThread 0 libsystem_kernel.dylib 0x00007fff8fb2d41a mach_msg_trap + 10 1 libsystem_kernel.dylib 0x00007fff8fb2c867 mach_msg + 55 2 libsystem_kernel.dylib 0x00007fff8fb21ed1 _kernelrpc_mach_port_set_attributes + 150 3 libdispatch.dylib 0x00007fff8f9e7739 _dispatch_runloop_queue_handle_init + 171 4 libdispatch.dylib 0x00007fff8f9d84b7 _dispatch_runloop_root_queue_create_4CF + 133 5 com.apple.CoreFoundation 0x00007fff7a9091e6 __CFRunLoopF​​indMode + 502 6 com.apple.CoreFoundation 0x00007fff7a909889 CFRunLoopAddSource + 201 7 com.apple.HIToolbox 0x000的07fff79ed9897 AdjustCGSSourceInRunLoop(空隙()(__ CFRunLoop,__CFRunLoopSource *,__CFString常量*),__CFRunLoop *,__CFRunLoopSource *)+ 180 8 com.apple.HIToolbox 0x00007fff79ed97bb AddCGSSourceToRunLoop(__ CFRunLoop *)+ 78 9 com.apple.HIToolbox 0x00007fff79eecc52 _BeginEventReceiptOnThread + 181 10 com.apple.AppKit 0x00007fff7870f4f8 _NSEventThread + 37 11 libsystem_pthread.dylib 0x00007fff8fc1daab _pthread_body + 180 12 libsystem_pthread.dylib 0x00007fff8fc1d9f7 _pthread_start + 286 13 libsystem_pthread。dylib 0x00007fff8fc1d221 thread_start + 13

线程0坠毁与X86线程状态(64位): RAX:0x0000000000000307 RBX:0x00000001003d93f0 RCX:0x00007fff8f9f9530 RDX:0x0000000000000307 RDI:0x0000000000000001 RSI:0x0000000000000006 RBP:0x00007fff5fbfa160 RSP:0x00007fff5fbfa0f0 R8 :0x0000000000000040 R9:0x00000001003d9408 R10:0xffffffffffffffff R11:0x0000000000012068 R12:0x00000001003d93e0 R13:0x00000001003d94a0 R14:0x00007fff986f5a80 R15:0x0000000102076898 RIP:0x00007fff8f9ddd21 RFL:0x0000000000010202 CR2:0x00007fff9db1224b

逻辑CPU:3 错误代码:00000000 陷阱号:6个

二元图像: 0x100000000 - 0x100000ff7 +蟒(???)/用户/用户/ /蟒 0x100003000 - 0x100146ff7 + libpython2.7.dylib(2.7)< 87FF0E63-058F-3190-A882-8E25F3D889C7> /用户/用户/ /libpython2.7.dylib 0x1002db000 - 0x1002dcff7 + _locale.so(???)/用户/用户/ /_locale.so 0x1002e0000 - 0x1002e6ff7 + itertools.so(???)/ Users/USER/ /itertools.so < < < < < < LINES为简洁起见省略>>>>>> 0x7fff8fc2b000 - 0x7fff8fc32fff libsystem_symptoms.dylib(532.1.1)< 8FB7CA37-79EF-3651-B5B9-B5E1E0947067> /usr/lib/system/libsystem_symptoms.dylib 0x7fff8fc33000 - 0x7fff8fc53ff7 libsystem_trace。 dylib(518.20.8)/usr/lib/system/libsystem_trace.dylib 0x7fff8fc54000 - 0x7fff8fc59ffb libunwind.dylib(35.3)< 9F7C2AD8-A9A7-3DE4-828D-B0F0F166AAA0> /usr/lib/system/libunwind.dylib 0x7fff8fc5a000 - 0x7fff8fc83ff7 libxpc.dylib(972.20.3)< 85EB25FD-218F-38EE-9E69-391CC8EBE6C5> /usr/lib/system/libxpc.dylib

外部修改总结:通过其他工艺靶向这种方法制成 呼叫: task_for_pid:0 thread_create:0 thread_set_state:通过这种方法制成的0 呼叫: task_for_pid:0 thread_create:0 thread_set_state:此机器上的所有方法制得的0 呼叫: task_for_pid:542465 thread_create:0 thread_set_state:0

VM区总结:文库 只读部分:总= 254.5M居民= 0K(0%)swapped_out_or_unallocated = 254.5M(100%) 可写区域:总= 96.5M书面= 0K(0% )居民= 0K(0%)swapped_out = 0K(0%)未分配= 96.5M(1 00%)

      VIRTUAL REGION 

REGION TYPE SIZE COUNT(未合并的) =========== ======= ======= 行为跟踪256K 2 CoreUI图像文件144K 3 调度延续8192K 2 内核的Alloc一旦8K 2 MALLOC 61.8M 54 MALLOC保护页32K 7 存储器标签242 12K 2 STACK GUARD 56.0M 7 堆栈10.1M 7 VM_ALLOCATE 48K 7 __DATA 21。0M 292 __IMAGE 528K 2 __LINKEDIT 115.0M 66 __TEXT 139.5M 288 __unicode 556K 2 映射文件43.2M 9 共享存储器16.3M 12 =========== ====== = ======= TOTAL 472.4M 747

型号:MacBookPro11,1,BOOTROM的MBP111.0138.B17,2个处理器,Intel酷睿,2,4- GHz的,8 GB,SMC 2.16f68 图形:英特尔Iris,英特尔Iris,内置内存模块:BANK 0/DIMM0,4GB,DDR3,1600MHz,0x80AD,0x484D54343531533641465238412D50422020 内存模块:BANK 1/DIMM0,4GB,DDR3,1600MHz,0x80AD,0x48 4D54343531533641465238412D50422020 的AirPort:spairport_wireless_card_type_airport_extreme(0x14E4,0x112),博通BCM43xx 1.0(7.21.171.47.1a8) 蓝牙:版本5.0.1f7,3个服务,17个设备,1个输入的串行端口 网络服务:机场,,EN0 串行ATA设备:APPLE SSD SM0256F,251 GB USB设备:USB 3.0总线 USB设备:苹果内置键盘/触控板 USB设备:BRCM20702集线器 USB设备:蓝牙USB主机控制器 霹雳公交:的MacBook Pro,苹果公司, 17.2

+0

我的猜测是,您遇到了多进程与GUI代码之间交互的问题。你使用哪个mpl后端?如果目标是保存文件,我建议使用其中一个非交互式后端。请参阅http://matplotlib.org/faq/usage_faq.html#what-is-a-backend – tacaswell

+0

默认后端。但是,如果我使用 'import matplotlib matplotlib.use('MacOSX')' 然后我看不到情节。 更新到OSX Sierra之前一切正常工作,现在我一直在争取这个问题一个星期... –

+0

下面的一些更新。 –

回答

0

好吧,更多信息:如果我运行第一个流程米终端,其脚本 'visl.py' 是:

#!/usr/bin/env python 
from multiprocessing import Process 
import sys 
sys.path.insert(0, './lib') 
import visualizer 

visualizer.Visualizer() 

和然后第二处理来自不同的终端的实例,其脚本 'logr.py' 是:

#!/usr/bin/env python 
from multiprocessing import Process 
import sys 
sys.path.insert(0, './lib') 
import logger 


args_logger = {'sampling_time_ms': 5, 'plotting_time_ms': 100} 
logger.Logger(args_logger) 

它的工作原理。然后:如何从一个脚本运行两个python进程?

+0

顺便说一句:我解决了这个问题的解决办法。显然,Python中的多进程管理存在一些问题。现在Ruby被用来启动和处理两个不同的进程。我知道这是一个相当可怕的解决方案,但是我想出了一个更好的主意(我是一个业余爱好者,而不是专业程序员)。 该解决方案已发布在GitHub仓库中。 –