DS JUNKSTAブログ

元文系院卒が独学で取り組むDS(データサイエンス)、その有象無象のアウトプット、DSは本当に楽しい

【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