[英]NFCPY/libUSB crashing running examples
我在Mac Lion上安裝了NFCPY,pyUSB和libusb。 我使用的是普通的ACR122U NFC讀卡器,當我嘗試運行任何示例時,它都會崩潰。 我知道很多人在NFCPY上使用同一閱讀器,但我不知道為什么它對我不起作用。
Python不會輸出任何錯誤,但是我可以在日志文件中看到此堆棧跟蹤:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libusb-1.0.dylib 0x000000010f799bda darwin_reset_device + 10 (darwin_usb.c:1213)
1 libffi.dylib 0x00007fff87b2fe7c ffi_call_unix64 + 76
2 libffi.dylib 0x00007fff87b30ae9 ffi_call + 728
3 _ctypes.so 0x000000010f78033f _ctypes_callproc + 735
4 _ctypes.so 0x000000010f77afd2 0x10f777000 + 16338
5 org.python.python 0x000000010f360d32 PyObject_Call + 97
6 org.python.python 0x000000010f3e0f63 PyEval_EvalFrameEx + 14353
7 org.python.python 0x000000010f3e3cd8 PyEval_EvalCodeEx + 1996
8 org.python.python 0x000000010f381abf 0x10f359000 + 166591
9 org.python.python 0x000000010f360d32 PyObject_Call + 97
10 org.python.python 0x000000010f3e15ec PyEval_EvalFrameEx + 16026
11 org.python.python 0x000000010f3e3cd8 PyEval_EvalCodeEx + 1996
12 org.python.python 0x000000010f3e3e6c 0x10f359000 + 568940
13 org.python.python 0x000000010f3e0e0a PyEval_EvalFrameEx + 14008
14 org.python.python 0x000000010f3e3df7 0x10f359000 + 568823
15 org.python.python 0x000000010f3e0e0a PyEval_EvalFrameEx + 14008
16 org.python.python 0x000000010f3e3df7 0x10f359000 + 568823
17 org.python.python 0x000000010f3e0e0a PyEval_EvalFrameEx + 14008
18 org.python.python 0x000000010f3e3cd8 PyEval_EvalCodeEx + 1996
19 org.python.python 0x000000010f381abf 0x10f359000 + 166591
20 org.python.python 0x000000010f360d32 PyObject_Call + 97
21 org.python.python 0x000000010f36f6e9 0x10f359000 + 91881
22 org.python.python 0x000000010f360d32 PyObject_Call + 97
23 org.python.python 0x000000010f3ab484 0x10f359000 + 337028
24 org.python.python 0x000000010f3a5b7a 0x10f359000 + 314234
25 org.python.python 0x000000010f360d32 PyObject_Call + 97
26 org.python.python 0x000000010f3e0f63 PyEval_EvalFrameEx + 14353
27 org.python.python 0x000000010f3e3df7 0x10f359000 + 568823
28 org.python.python 0x000000010f3e0e0a PyEval_EvalFrameEx + 14008
29 org.python.python 0x000000010f3e3cd8 PyEval_EvalCodeEx + 1996
30 org.python.python 0x000000010f3e3e6c 0x10f359000 + 568940
31 org.python.python 0x000000010f3e0e0a PyEval_EvalFrameEx + 14008
32 org.python.python 0x000000010f3e3cd8 PyEval_EvalCodeEx + 1996
33 org.python.python 0x000000010f381abf 0x10f359000 + 166591
34 org.python.python 0x000000010f360d32 PyObject_Call + 97
35 org.python.python 0x000000010f36f6e9 0x10f359000 + 91881
36 org.python.python 0x000000010f360d32 PyObject_Call + 97
37 org.python.python 0x000000010f3ab484 0x10f359000 + 337028
38 org.python.python 0x000000010f3a5b7a 0x10f359000 + 314234
39 org.python.python 0x000000010f360d32 PyObject_Call + 97
40 org.python.python 0x000000010f3e0f63 PyEval_EvalFrameEx + 14353
41 org.python.python 0x000000010f3e3df7 0x10f359000 + 568823
42 org.python.python 0x000000010f3e0e0a PyEval_EvalFrameEx + 14008
43 org.python.python 0x000000010f3e3cd8 PyEval_EvalCodeEx + 1996
44 org.python.python 0x000000010f3e3d4d PyEval_EvalCode + 54
45 org.python.python 0x000000010f3fb08f 0x10f359000 + 663695
46 org.python.python 0x000000010f3fb14f PyRun_FileExFlags + 157
47 org.python.python 0x000000010f3fc2a2 PyRun_SimpleFileExFlags + 392
48 org.python.python 0x000000010f40c2af Py_Main + 2715
49 org.python.python 0x000000010f34ee88 0x10f34e000 + 3720
Thread 1:: org.libusb.device-detach
0 libsystem_kernel.dylib 0x00007fff90e2967a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff90e28d71 mach_msg + 73
2 com.apple.CoreFoundation 0x00007fff90082b6c __CFRunLoopServiceMachPort + 188
3 com.apple.CoreFoundation 0x00007fff9008b2d4 __CFRunLoopRun + 1204
4 com.apple.CoreFoundation 0x00007fff9008aae6 CFRunLoopRunSpecific + 230
5 com.apple.CoreFoundation 0x00007fff9009a7ff CFRunLoopRun + 95
6 libusb-1.0.dylib 0x000000010f79e997 event_thread_main + 631 (darwin_usb.c:369)
7 libsystem_c.dylib 0x00007fff903888bf _pthread_start + 335
8 libsystem_c.dylib 0x00007fff9038bb75 thread_start + 13
Thread 2:: Dispatch queue: com.apple.libdispatch-manager
0 libsystem_kernel.dylib 0x00007fff90e2b7e6 kevent + 10
1 libdispatch.dylib 0x00007fff92d9e5be _dispatch_mgr_invoke + 923
2 libdispatch.dylib 0x00007fff92d9d14e _dispatch_mgr_thread + 54
Thread 3:
0 libsystem_kernel.dylib 0x00007fff90e2b192 __workq_kernreturn + 10
1 libsystem_c.dylib 0x00007fff9038a594 _pthread_wqthread + 758
2 libsystem_c.dylib 0x00007fff9038bb85 start_wqthread + 13
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x000000010f7a2320 rbx: 0x0000000000000000 rcx: 0x000000010f985f80 rdx: 0x0000000000000000
rdi: 0x0000000000000000 rsi: 0x0000000000000001 rbp: 0x00007fff6ef4baa0 rsp: 0x00007fff6ef4ba90
r8: 0x000000010f48e840 r9: 0x0000000000000000 r10: 0x00007fff6ef4ba00 r11: 0x000000010f795340
r12: 0xffffffffffffffff r13: 0x0000000000000001 r14: 0x0000000000000000 r15: 0x00007fff6ef4bab0
rip: 0x000000010f799bda rfl: 0x0000000000010246 cr2: 0x0000000000000058
Logical CPU: 1
任何幫助將不勝感激,我堅持了很多天
使用ACR122U和python的最佳工具是pyscard和RFIDIOt ,它們是pyscard和libnfc的包裝。 pyscard可以很好地處理它,這是一個示例:
http://ludovicrousseau.blogspot.com.br/2010/04/pcsc-sample-in-python.html
查看libusb中darwin_reset_device()
的來源 ,並考慮它在函數中崩潰的時間(僅10字節),我猜測傳遞給darwin_reset_device()
dev_handle
或dev_handle->dev
為NULL。
弄清楚為什么會發生這種情況很復雜-有很多代碼和層需要進行故障排除(libusb,pyusb,nfcpy)。 也許您可以找出其他人是否在Lion上成功運行了nfcpy,以及他們在做什么(Xcode版本,nfcpy版本等)不同。
另一個建議(根據我在Mac上使用USB驅動程序的經驗):拔下連接到計算機的所有 USB設備。 這包括任何第三方鼠標/鍵盤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.