IPython magics是如何工作的

IPython magics是如何工作的,ipython,ipython-notebook,ipython-magic,Ipython,Ipython Notebook,Ipython Magic,ipthonsql是ipython的一个扩展,我首先通过pip安装ipythonsql来安装它 项目在这里: 我的问题是: 当我输入%load_ext sql并按SHIFT+enter时,IPython执行这个神奇句子的详细过程是什么?谢谢 当您运行笔记本电脑中的任何代码时,一个执行请求将通过笔记本电脑服务器发送到一个“内核”,该进程将执行您的代码 当内核接收到您的代码时,它会通过一系列输入转换器运行代码。其中一个检测到此行是一个魔术命令,并将其重写为: get_ipython().magic(

ipthonsql是ipython的一个扩展,我首先通过pip安装ipythonsql来安装它

项目在这里:

我的问题是:

当我输入%load_ext sql并按SHIFT+enter时,IPython执行这个神奇句子的详细过程是什么?谢谢


当您运行笔记本电脑中的任何代码时,一个
执行请求将通过笔记本电脑服务器发送到一个“内核”,该进程将执行您的代码

当内核接收到您的代码时,它会通过一系列输入转换器运行代码。其中一个检测到此行是一个魔术命令,并将其重写为:

get_ipython().magic('load_ext sql')
您可以使用
%hist-t
查看这些已翻译的命令

.magic()
方法获取其参数的第一个单词
load\u ext
,并在字典中查找它。您可以通过运行以下命令查看该词典:

get_ipython().magics_manager.magics['line']
(这可能有点不同,取决于您的IPython版本)

这给了它一个方法
IPython.core.magics.extension.ExtensionMagics.load\u ext
,您可以看到。它使用字符串的其余部分调用该方法

该方法导入包
sql
,并调用
sql.load\u ipython\u extension(ip)
对其进行设置。这取决于扩展的功能——在本例中,它注册了一些新的魔法函数