Closed1

Jupyter notebookで,import元をの中身を変更しても,importでエラーが出る

HashoryHashory
ImportError: cannot import name 'fugafuga' from 'hogehoge' (\hogehoge.py) 

Jupter Notebookで,上記のようなエラーが表示された.fugafugaは追加したつもりだが,見つからないらしい.

原因は,

Jupyter Notebookで新しい関数をPythonファイルに追加した後、その関数を使うにはカーネルを再起動する必要があります。一度インポートされたファイルはキャッシュされ、変更が反映されないためです。

とのこと.つまり,一度インポートしたものは,再度インポートしたので,新たに追加したものは見つからないと.

再起動しないで良い解決策

以下をセルに追加して実行する.

%load_ext autoreload
%autoreload 2

これによって自動的にリロードができるらしい.

2がモードらしい.モードの具体的な意味は調べきれていないが,オートリロードの対象をすべてにする設定らしい.動いたのでヨシとする.

VScodeで起動時にオートリロードを有効にする

下記をVScodeのsettings.jsonに追記することで,次回起動時も,自動的にオートリロードが有効になるみたい.

"jupyter.runStartupCommands": [
    "%load_ext autoreload",
    "%autoreload 2"
]

おわりに

オートリロードが有効だと重たくなるのかもしれないが,今のところ,そのような事態には遭遇していないので,デフォルト有効でいいのではって思う…

このスクラップは2025/01/28にクローズされました