天天看點

jupyter 每次運作重新導入子產品

最近在做資料分析的工作,一些自己寫好的子產品在jupyter中是被調用的關系,但是一旦我修改了外部子產品的代碼,在jupyter中是不會自動更新的,類似于緩存機制。要想更新,就隻能重新開機核心然後再全部跑一遍,相當麻煩。

下面提供解決方式:

1. importlib

import importlib
importlib.reroad(your_module)
# 在需要重新導入module的cell中寫importlib.reroad即可
           

2. 魔法函數

在cell中添加如下代碼,每次運作自動導入aimport 指定的子產品。

%load_ext autoreload
%autoreload 1
%aimport your_module
           

進一步偷懶,自動重載所有子產品,每次運作一個cell,所有子產品都會重載一次,缺點是會耗費一點時間

%load_ext autoreload
%autoreload 2
           

寫在最後,可以在ipython 搜尋load關鍵詞檢視最新的用法。