You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:06:01