モジュールを変更した後にリロードするにはどうすればいいですか? 質問する

モジュールを変更した後にリロードするにはどうすればいいですか? 質問する

Python 3.4.2 の Python コンソール

PyCharm Community Edition 4.5.4 の Python コンソールで正しく実行されるモジュールに関数を定義しました:
ReloadTest.py:

def reloadtest(x):
    print("Version A: {}".format(x))

Python コンソール:

Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32
>>> from ReloadTest import reloadtest
>>> reloadtest(1)
Version A: 1   

関数を「バージョン B」に変更した後、PyCharm は変更を検出できず、importlib.reload(ReloadTest)エラーが表示されます。
モジュールを変更するたびに、Python コンソールを再読み込みするか、PyCharm を再起動する必要があります。何が間違っているのでしょうか? これに対処する最善の方法は何ですか?

再ロードテスト.py:

def reloadtest(x):
    print("Version B: {}".format(x))

Python コンソール:

>>> reloadtest(1)
Version A: 1
>>> from ReloadTest import reloadtest
>>> reloadtest(1)
Version A: 1
>>> import importlib
>>> importlib.reload(ReloadTest)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'ReloadTest' is not defined
>>> from ReloadTest import reloadtest
>>> reloadtest(1)
Version A: 1
>>> import ReloadTest
>>> reloadtest(1)
Version A: 1

ベストアンサー1

Settings-> Build, Execution, Deployment-> Console->に次の行を追加することで、変更時にモジュールを自動的に再ロードするように Pycharm に指示できます。Python ConsoleStarting script

%load_ext autoreload
%autoreload 2

ここに画像の説明を入力してください

更新: この関数にpip install ipythonは、ここで説明されているように IPython () が必要です。IPython でサブモジュールを再ロードする

おすすめ記事