我正在使用 Pybel - OpenBabel API 的 Python 包装器,并且我正在尝试禁用诸如此类的警告:
==============================
*** Open Babel Warning in ParseComplex
Illegal aromatic element b-
当从 ChEMBL 获取指纹分子 SMILES
时,我的警告不断发出您可以从
OBMessageHandler
模块获取 openbabel 记录器(openbabel
类)的句柄。诀窍是首先从 pybel 模块访问 openbabel 模块,获取 OBMessageHandler
类,并实例化记录器 (docs):
import pybel
ob_log_handler = pybel.ob.OBMessageHandler()
使用手柄,您可以将
log_level
设置为 0 以禁用 除关键消息之外的所有消息 (docs):
ob_log_handler.SetOutputLevel(0)
您可以使用以下枚举(此处的文档)来选择日志记录级别。默认值为 1,记录所有 警告:
Aelfinn 的答案对我不起作用,但以这种方式访问 SetOutputLevel 却可以:
pybel.ob.obErrorLog.SetOutputLevel(0)
如果您想摆脱所有错误消息:
pybel.ob.obErrorLog.StopLogging()
我们可以在没有 pybel 的情况下配置 openbabel 的记录器,如下所示:
from openbabel import openbabel
openbabel.obErrorLog.StopLogging()