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

时间:2019-10-14 22:26:39

标签: python python-3.x

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以尝试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