ipthon-sql是ipython的扩展,我首先通过pip install ipython-sql安装它
项目在这里:https://github.com/catherinedevlin/ipython-sql
我的问题是:
当我输入%load_ext sql并按SHIFT + ENTER时,IPython执行这个魔术句的详细程序是什么?谢谢...
答案 0 :(得分:6)
当您在笔记本中运行任何代码时,execute_request
将通过笔记本服务器发送到“内核”,这是一个执行代码的过程。
当内核收到你的代码时,它会通过一系列输入变换器运行它。其中一个检测到此行是魔术命令,并将其重写为:
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
提供了参考,您可以看到here。它用字符串的其余部分调用该方法。
该方法导入包sql
,并调用sql.load_ipython_extension(ip)
进行设置。它取决于它所做的扩展 - 在这种情况下,它注册了一些新的魔术函数。