回答:
reload はPython 2に組み込まれていますが、Python 3には組み込まれていないため、表示されているエラーが予想されます。
本当にPython 3でモジュールをリロードする必要がある場合は、次のいずれかを使用する必要があります。
importlib.reload Python 3.4以降imp.reloadPython 3.0〜3.3(Python 3.4以降では非推奨importlib)reloadに、スクリプトへの書き込みの有効な使用例は非常にまれであり、そのようなダークアートを採用している人はこのコメントを読んでいる可能性は低いと思います。ただし、モジュールを開発し、IPythonコンソールを使用してインタラクティブにテストする場合reloadは、そのワークフローで便利です。ただし、@ Evanが言ったように、インポート時の副作用に注意してください。一般に、私はreload他人のモジュールを使わないように言います。 reload設計時に自分自身を使用することは理にかなっています。
以前に書かれた回答を拡張するために、Pythonバージョン2および3で機能する単一のソリューションが必要な場合は、以下を使用できます。
try:
reload # Python 2.7
except NameError:
try:
from importlib import reload # Python 3.4+
except ImportError:
from imp import reload # Python 3.0 - 3.3
python2とpython3の互換性のために、以下を使用できます。
# Python 2 and 3
from imp import reload
reload(mymodule)
外部ライブラリを使用したくない場合、1つの解決策は、以下のようにpython 3のpython 2からreloadメソッドを再作成することです。これをモジュールの上部で使用します(Python 3.4以降を想定)。
import sys
if(sys.version_info.major>=3):
def reload(MODULE):
import importlib
importlib.reload(MODULE)
BTWのリロードは、Pythonファイルを構成ファイルとして使用し、アプリケーションの再起動を避けたい場合に非常に必要です。