2017-02-02 6 views
2

Ich bin verwirrt durch das Verhalten von importlib in der interaktiven IPython-Shell. Wenn ich laufen:Neuladen von Modulen mit Importlib in IPython

import importlib.reload as ilrel 

erhalte ich die Fehler ImportError: No module named 'importlib.reload'. Genau so importiere ich andere Module wie matplotlib.pyplot.

Momentan importiere ich einfach importlib und dann importlib.reload(<module name>). Dies ist kein großes Problem, aber warum funktioniert die erste Methode nicht?

Antwort

5

Da reload kein Modul ist, ist es eine Funktion innerhalb des importlib Moduls. Importlib ist nicht spezifisch. So funktionieren Importe für alle Module.

Wenn Sie nur die Funktion selbst möchten, können Sie from importlib import reload tun.

Beachten Sie auch, dass diese Funktion nur in Python 3.4+ verfügbar ist.

+1

und wenn Sie Daniels Vorschlag 'from ImportLib Import Reload' verwenden, dann rufen Sie die Funktion 'reload ()' anstelle von 'importlib.reload ()' auf – jacanterbury