【问题标题】:Prevent pyBullet from printing build time on import防止 pyBullet 在导入时打印构建时间
【发布时间】:2020-06-30 12:14:46
【问题描述】:

当我导入 pyBullet 时,它会立即打印一行,其中包含构建时间:

In [1]: import pybullet
pybullet build time: Jun 19 2020 04:01:58

有没有办法防止这种情况发生?

【问题讨论】:

    标签: python pybullet


    【解决方案1】:

    更改源代码。撇开玩笑不谈,我认为没有明显的方法可以防止这种情况发生。由于它是在您导入模块时发生的,因此您在配置 pybullet 时无能为力。因为它实际上是你用它做的第一件事。

    也许您可以在导入模块期间重新路由标准输出。这里已经回答了一个重复的问题:Stop Python Module from Printing

    【讨论】:

    • 我找到了this issue 关于打印的信息。到目前为止,编辑代码似乎是唯一的选择。不幸的是,stdout 的重新路由不起作用,可能是因为打印来自底层 C 代码,而不是来自 Python。
    【解决方案2】:

    在 pygame 的类似问题上查看这些解决方案。

    Why when import pygame, it prints the version and welcome message. How delete it?

    基于此,我建议尝试:

    import contextlib
    with contextlib.redirect_stdout(None):
        import pybullet
    

    完全归功于 MadPhysicist

    【讨论】:

    • 不幸的是,这不起作用,打印仍然显示。我认为这是因为打印来自底层 C 代码,所以 Python 无法控制它(请参阅我对 tjallo 答案的评论)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    相关资源
    最近更新 更多