

自作の関数を.pyファイルに保存し、外のpyファイルから呼び出して用いる際、自作の関数を頻繁に更新したいのですが、外のpyファイルから一度呼び出してしまうと、いくらimportし直しても更新できません。

どのようにすればよいのかお教えいただければと思います。

例えば、自作の関数を保存したファイルを①.pyとし、①を呼び出すプログラムを②.pyとしたとき、②.pyを実行して色々試しながら必要に応じて①.pyを変更したいと思います。


CC BY-SA 4.0
2020-01-21T10:59:12.153
62431
2020-01-21T12:21:13.800
35514
question
anaconda ipython
IPythonにおける自作モジュールの更新について


[autoreload](https://ipython.org/ipython-
doc/3/config/extensions/autoreload.html)はご覧になりましたか？

例えばカレントディレクトリにこんなスクリプト、 `foo.py` があったとして

[code]

    def say():
        print("hello")
    
[/code]

ipythonから `autoreload` モジュールを有効にすると:

[code]

    In [1]: %load_ext autoreload
    
    In [2]: %autoreload 2
    
[/code]

一回目の起動はこんな感じに:

[code]

    In [3]: from foo import say
    
    In [4]: say()
    hello
    
    
[/code]

このとき `foo.py` を書き換えて:

[code]

    def say():
        print("world")
    
[/code]

ipythonで続けて`say()`を実行するとこんな感じになります。

[code]

    In [5]: say()
    world
    
[/code]


CC BY-SA 4.0
2020-01-21T12:21:13.800
62437
2020-01-21T12:21:13.800
62
62431
answer