ipthon-sql 是 ipython 的扩展,我先通过 pip install ipython-sql 安装
项目在这里:https ://github.com/catherinedevlin/ipython-sql
我的问题是:
当我输入 %load_ext sql 并按 SHIFT+ENTER 时,IPython 执行这个神奇语句的详细过程是什么?谢谢 ...
ipthon-sql 是 ipython 的扩展,我先通过 pip install ipython-sql 安装
项目在这里:https ://github.com/catherinedevlin/ipython-sql
我的问题是:
当我输入 %load_ext sql 并按 SHIFT+ENTER 时,IPython 执行这个神奇语句的详细过程是什么?谢谢 ...
当您在笔记本中运行任何代码时,execute_request
都会通过笔记本服务器将 an 发送到“内核”,即执行代码的进程。
当内核收到您的代码时,它会通过一系列输入转换器运行它。其中之一检测到这一行是一个魔术命令,并将其重写为:
get_ipython().magic('load_ext sql')
您可以使用 . 查看这些翻译后的命令%hist -t
。
该.magic()
方法获取其参数的第一个单词load_ext
,并在字典中查找它。您可以通过运行查看该字典:
get_ipython().magics_manager.magics['line']
(根据您的 IPython 版本,这可能会有所不同)
这为它提供了对该方法的引用IPython.core.magics.extension.ExtensionMagics.load_ext
,您可以在此处看到该方法。它使用字符串的其余部分调用该方法。
该方法导入包sql
,并调用sql.load_ipython_extension(ip)
设置它。这取决于扩展它的作用——在这种情况下,它注册了一些新的魔法函数。