IPythonノートブックでコードが実行されたかどうかを確認するにはどうすればよいですか? 質問する

IPythonノートブックでコードが実行されたかどうかを確認するにはどうすればよいですか? 質問する

ターミナル Python / IPython または IPython ノートブックで実行すると異なる動作をする Python コード例をいくつか共有したいと思います。

Python コードが IPython ノートブックで実行されているかどうかをどうやって確認すればいいですか?

ベストアンサー1

私のニーズには以下が適していました:

get_ipython().__class__.__name__

'TerminalInteractiveShell'これは、ターミナル IPython、'ZMQInteractiveShell'Jupyter (ノートブックと qtconsole) では戻り、NameError通常の Python インタープリターでは失敗します ( )。この関数は、get_ipython()IPython の起動時にデフォルトでグローバル名前空間で使用できます。

それを単純な関数にラップします:

def is_notebook() -> bool:
    try:
        shell = get_ipython().__class__.__name__
        if shell == 'ZMQInteractiveShell':
            return True   # Jupyter notebook or qtconsole
        elif shell == 'TerminalInteractiveShell':
            return False  # Terminal running IPython
        else:
            return False  # Other type (?)
    except NameError:
        return False      # Probably standard Python interpreter

上記は、macOS 10.12およびUbuntu 14.04.4 LTS上のPython 3.5.2、IPython 5.1.0、Jupyter 4.2.1でテストされました。

編集: これは2022年でも新しいPython/IPython/Jupyter/OSバージョンでは問題なく動作します

おすすめ記事