LoginSignup
7
9

More than 3 years have passed since last update.

jupyter notebookで自作ライブラリをテストする方法 autoreload

Last updated at Posted at 2018-11-23

autoreload

pythonではimportした後にもう一度importしなおしても、同名の場合はキャッシュを利用するため、import先が変更されていても適用されない。
他人のライブラリであれば、それでむしろ問題がないが、自作ライブラリの場合、それを補修しながら使うのが普通なので、ありがたくない。
そこで、importを再度するためのライブラリもpythonないにも用意されているが、多少面倒くさい。

この面倒くささを省いてくれるのが autoreload
https://ipython.org/ipython-doc/3/config/extensions/autoreload.html
にあるように、autoreloadを使うと、関数を呼ぶたびにライブラリの読み込みが入るため、ライブラリのファイルを保存するだけで、勝手に反映される。設定も色々ある。

使い方

とりあえず使いたい人向け

%load_ext autoreload
%autoreload 1
%aimport 自作ライブラリ

%autoreload

%load_ext autoreload #autoreloadを読み込む
%autoreload <option>
option 機能
なし 全てのモジュールがこの瞬間、再読み込みされる(ただし、%aimportで除かれたものを除く)
0 autoreloadを無効化
1 %aimportで明示されたモジュールを実行前に全て再読み込みする
2 全てのモジュールが実行前に、再読み込みされる(ただし、%aimportで除かれたものを除く)

%aimport

# fooモジュールを明示的に再読み込みする(autoreloadのoption=1に影響)
%aimport foo
#fooモジュールを明示的に再読み込みさせない(autoreloadのoption=なし,1,2に影響)
%aimport -foo

注意点

クラスのコンストラクタを変更した場合はうまく変更されない模様。

そんなときは

%autoreload

すればよい

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9