ターミナル 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バージョンでは問題なく動作します