在 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+ 中可用。
我对 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+ 中可用。