在 IPython 中使用 importlib 重新加载模块

Reloading modules with importlib in IPython

我对 importlib 在交互式 IPython shell 中的行为感到困惑。当我 运行:

import importlib.reload as ilrel

我收到错误 ImportError: No module named 'importlib.reload'。这正是我导入其他模块的方式,例如 matplotlib.pyplot.

目前我只是简单地单独导入 importlib,然后使用 importlib.reload(<module name>)。这不是主要问题,但为什么第一种方法不起作用?

因为 reload 不是一个模块,它是 importlib 模块中的一个函数。 importlib 没有什么特别的;这就是导入对所有模块的工作方式。

如果你只想要函数本身,你可以from importlib import reload

另请注意,此功能仅在 Python 3.4+ 中可用。