用途

私はPythonの独自モジュールを作る際に、Jupyter上でコーディングして、出来上がったら”Executable Script”としExportして使っている。
こういうやり方をしている時に、Jupyter上で作成時には、確認やデバッグ用のコードを書いたセルを含む。
これを、Export前に消す、あるいはif True:と書いておいて、Export前にif False:に書き換えるなどとしていたが、それなりに面倒だ。

その解決方法を確認したので、以下に示す。

判定用フラグ

先頭の方のスクリプトに以下を書き、フラグOnJupyterを設定する。

import sys
OnJupyter = __name__ == '__main__' and "ipykernel" in sys.modules

このフラグは、Jupyter上で直接実行されているノートブック上のコードでのみTrueとなる。作成したモジュールをJupyter上でimportしても、そのモジュール上では(__name__が__main__ではないので)Falseとなる。

デバッグ用セル

デバッグ用のセルは、以下の例の様に先頭でフラグをチェックするように書けば良い。

if OnJupyer:
    print("This is a debug code")
广告
将在 10 秒后关闭
bannerAds