【Python】Jupyter labでnotebook外のモジュールを呼び出す時の設定
Jupyter labでコーディングをしているとnotebookへの記述が溜まってしまうので、
よく使う関数は別の.pyファイル内にまとめておいて、呼び出す必要が出てくる。
本記事では、notebook外のpy.ファイルから関数を呼び出す際の設定方法をまとめる。
結論
notebookで、以下の通りモジュール(関数をまとめた.pyファイル)を呼び出す設定を実行しておく
%load_ext autoreload %autoreload 2 import (モジュール名)
説明
モジュールのオートリロードの設定
%load_ext autoreload
%autoreload 2
この記述で、importしたモジュール(.pyファイル)が変更⇨保存するたびにモジュールをオートリロードしてくれる。
notebookで実行するたび、モジュール内の関数の変更内容が自動で反映されていく。
例えば、作業中のnotebookと同じディレクトリ内にsome_function.pyという関数用のモジュールを準備している場合。
autoreloadとimportの設定
%load_ext autoreload %autoreload 2 import some_function
some_function.py では↓のようにデフォルト引数を設定したtriangle関数を記述している。
def triangle(height=300, base=100): return (height*base)/2
notebookでの実行方法は↓
(モジュール名).(関数名)
で実行。
some_function.triangle()
# 15000.0
このようにモジュールの関数から値が返る。
関数のデフォルト値を変更した場合…
# height=300⇨20, base=200⇨10 def triangle(height=20, base=10): return (height*base)/2
notebookで同関数を実行すると、↓のように関数の変更内容が正しく反映されている。
some_function.triangle()
# 100.0