python - 如何在异常中获取模块名称

标签 python python-3.x

在捕获异常时,我得到了以下异常:

>>> exc_type
<class 'pymysql.err.ProgrammingError'>

是否有一种简单的方法来获取 pymysql 的值,以便我可以看到它来自哪个导入/模块?目前我正在做的事情:

>>> exc_type.__module__.split('.')[0]
'pymysql'

但这似乎有点粗糙。获得该值的最佳方式是什么?

最佳答案

您可以尝试inspect.getmodule :

>>> module = inspect.getmodule(exc_type)
>>> module
<module 'pymysql.err' from 'C:\\Python36\\lib\\site-packages\\pymysql\\err.py'>
>>> module.__name__
pymysql.err
>>> module.__package__
pymysql

关于python - 如何在异常中获取模块名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58384790/

相关文章:

python - 覆盖继承的属性 setter

python-3.x - python : Access Denied at Random Points When Using Requests

python - reshape pandas 数据框 : New row for every 76 entries

python - 保护 Typeform Webhook Python

python - 用户在自定义模块中编辑 many2one 字段时出现 AccessError

python - 使用棉花糖验证具有列表长度约束的模式列表

python-3.x - 尽管驱动程序在/usr/local/bin 中,但 Selenium “Unable to find a matching set of capabilities”

python - 使用 id() 函数比较 Python + IDLE 中的两个对象,结果不同

python - 基于列表/字典动态更改 networkx 中箭头的大小

python - 如何在 python statsmodels 中使用 X-13-ARIMA 获得预测