如何从Python3的OSError中获取完整报错信息?以python3-hid设备打开报错为例
我在Ubuntu系统上使用Python3,安装了HID模块python3-hid。
当我调用该模块打开设备时,仅收到如下报错:
OSError: open failed
因此我编写了异常捕获逻辑,尝试从中获取更多报错信息,代码如下:
try: h.open(vend, prod) except OSError as error : print(error) print(error.strerror) print(error.filename) sys.exit(1)
但出乎我意料的是,输出中strerror和filename属性均为None,没有额外有效信息:
open failed None None
注意:使用root身份运行时open()调用成功,所以可以确定是权限问题,但为何该OSError没有返回权限相关的提示?
请问如何才能从OSError中获取全部报错详情,包括具体失败原因、涉及的文件名等信息?
更新:报错回溯指向hid.pyx文件:
Traceback (most recent call last): File "/tmp/./tst.py", line 30, in <module> h.open(vend, prod) File "hid.pyx", line 66, in hid.device.open
我在系统中查询该文件却没有找到:
$ dpkg -S hid.pyx dpkg-query: no path found matching pattern *hid.pyx*
查询Ubuntu上游软件包信息后发现,python3-hid属于某加密货币钱包相关组件,我打算放弃使用该模块,可能直接基于该模块底层依赖的libhidapi-hidraw用C语言编写相关逻辑。
内容的提问来源于stack exchange,提问作者Bram
相关产品推荐
相关产品推荐

