web-dev-qa-db-ja.com

Python 3.4でモジュールをリロードします

これは本当にばかげた質問のように聞こえるかもしれませんが、何であれ。 Pythonで小さなスクリプトを作成し、シェルでいくつかの変更を加えました。通常、OS Xコンピューター(Python 2.7を実行している)では、reload(the_module)と入力するだけで、行った変更を含むモジュールを再ロードします。ただし、ここでモジュールをリロードするとき(windows python v。3.4)、次のように表示されます。

_>>> reload(instfile)
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    reload(instfile)
NameError: name 'reload' is not defined
_

そして、imp.reload(my_module)と入力すると、その関数は非推奨であると単に表示されます。新しい機能(または同等の機能)がどこにあるのかわからないようです。 :)

18
Zizouz212

impモジュールは、Python 3.4の代わりに importlibモジュール で廃止されました。 documentaion から= impモジュールの場合:

バージョン3.4から非推奨:impパッケージは、importlibを支持して廃止予定です。

したがって、そこからreload関数を使用する必要があります。

>>> import importlib
>>> importlib.reload
<function reload at 0x01BA4030>
>>> importlib.reload(the_module)
41
iCodez