当前位置:  开发笔记 > 编程语言 > 正文

确定我们是否在IPython笔记本会话中

如何解决《确定我们是否在IPython笔记本会话中》经验,为你挑选了1个好方法。

如果从IPython笔记本调用它,我希望我的函数做一件事,如果从控制台或库代码调用它,我想要另一件事.特别是我正在制作一个具有以下所需行为的进度条:

Notebook:立即返回一个小部件

控制台:阻止和转储信息sys.stdout

是否有一个标志,我可以检查以确定用户是否从笔记本电脑或其他方式调用我的功能?



1> minrk..:

您无法检测到前端具有完美精度的笔记本,因为IPython内核可以具有一个或多个具有不同功能的不同Jupyter前端(终端控制台,qtconsole,笔记本等).但是,您可以确定它是内核而不是普通终端IPython:

import sys

def is_kernel():
    if 'IPython' not in sys.modules:
        # IPython hasn't been imported, definitely not
        return False
    from IPython import get_ipython
    # check for `kernel` attribute on the IPython instance
    return getattr(get_ipython(), 'kernel', None) is not None

由于笔记本电脑比其他前端产品更受欢迎,这表明前端可能是笔记本电脑,但并非最终确定.因此,您需要确保有更多原始前端的出路.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有