列出加载的 IPython 个扩展

List loaded IPython extensions

有没有办法获取当前加载的 IPython 扩展的列表?

例如,如果我使用 %load_ext autoreload 或 运行:

将扩展自动重新加载到 IPython
from IPython import get_ipython
ipython = get_ipython()
ipython.magic("%load_ext autoreload")

有什么方法可以显示我已经加载了这个扩展吗?

我尝试过直接访问输入历史记录,例如

from IPython import get_ipython
ipython = get_ipython()
hist = ipython.extract_input_lines("0:100")

但事实证明 IPython 并没有在此处或通过 In_ih 访问的历史列表中存储具有魔术功能的输入。似乎只保存了执行普通 Python 的行。

无论如何,这个方案一般都行不通。如果用 runfile 运行 load_ext 调用的脚本,在历史记录中看到的所有内容将类似于 runfile('script_name.py', wdir='path/to/wdir').

通过查看 %load_ext 代码解决了这个问题:

from IPython import get_ipython
ip = get_ipython()
ip.extension_manager.loaded