如何快速查找Python traceback中出现的异常的正确限定名称?
快速查找Python异常正确限定名的方法
以下是Mac + Python3环境下最高效的几种方案,按操作复杂度从低到高排序:
- 方法1:查看完整Traceback输出
Python默认抛出未捕获异常时,Traceback的最后一行会直接显示异常的完整限定名,比如输出为bleak.exc.BleakError: 设备连接超时时,bleak.exc.BleakError就是该异常的正确全限定名,直接按这个路径导入即可。 - 方法2:临时捕获异常打印全路径
如果Traceback里没显示全路径,直接在触发异常的代码外层套一层通用捕获逻辑,运行触发一次异常就能拿到结果:
# 替换为你实际会抛出BleakError的业务代码 def run_ble_logic(): import adafruit_ble adafruit_ble.BLERadio().connect(...) try: run_ble_logic() except Exception as e: if type(e).__name__ == "BleakError": # 直接输出完整导入路径 print(f"异常全限定名:{type(e).__module__}.{type(e).__name__}")
拿到输出结果后直接用对应路径导入即可,比如输出bleak.exc.BleakError就加一行from bleak.exc import BleakError到你的代码头部。
- 方法3:终端搜索已安装库的异常定义
打开Mac终端执行以下命令直接检索异常定义位置:
- 先拿到库的安装路径:
pip3 show -f bleak | grep Location - 进入返回的路径后执行搜索:
grep -r "class BleakError" ./
返回结果中就能看到异常定义所在的文件路径,对应拼接出导入限定名即可。
额外提示:adafruit_ble的桌面端实现底层依赖bleak库,90%以上的场景下BleakError的导入路径就是
from bleak.exc import BleakError,可以先直接测试是否能正常导入使用。
内容的提问来源于stack exchange,提问作者Joymaker
相关产品推荐
相关产品推荐

