【问题标题】:How to disable logged warnings in Pybel?如何在 Pybel 中禁用记录的警告?
【发布时间】:2018-10-29 08:53:20
【问题描述】:

我正在使用 Pybel - 一个围绕 OpenBabel API 的 Python 包装器,我正在尝试禁用以下警告:

==============================
*** Open Babel Warning  in ParseComplex
  Illegal aromatic element b-

当从 ChEMBL

获取指纹分子 SMILES 时,我的警告一直被提出

【问题讨论】:

    标签: python-3.x logging openbabel pybel


    【解决方案1】:

    您可以从openbabel 模块获取openbabel 记录器(OBMessageHandler 类)的句柄。诀窍是首先从 pybel 模块访问 openbabel 模块,获取 OBMessageHandler 类,然后实例化记录器 (docs):

    import pybel
    
    ob_log_handler = pybel.ob.OBMessageHandler()
    

    使用句柄,您可以将log_level 设置为 0 以禁用除关键消息之外的所有消息 (docs):

    ob_log_handler.SetOutputLevel(0)
    

    您可以使用以下枚举 (docs here) 来选择您的日志记录级别。默认为 1,记录所有警告

    • 0:严重
    • 1:警告(默认
    • 2:信息
    • 3:审计(当分子被破坏/感知时
    • 4:调试

    【讨论】:

      【解决方案2】:

      Aelfinn 的回答对我不起作用,但以这种方式访问​​ SetOutputLevel 确实有效:

      pybel.ob.obErrorLog.SetOutputLevel(0)

      【讨论】:

        【解决方案3】:

        如果你想摆脱所有的错误信息:

        pybel.ob.obErrorLog.StopLogging()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-06-30
          • 1970-01-01
          • 2010-09-30
          • 1970-01-01
          • 2017-07-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多