tao*_*.li 4 ipython ipython-notebook ipython-magic
ipthon-sql是ipython的扩展,我首先通过pip install ipython-sql安装它
项目在这里:https://github.com/catherinedevlin/ipython-sql
我的问题是:
当我输入%load_ext sql并按SHIFT + ENTER时,IPython执行这个魔术句的详细程序是什么?谢谢 ...

当您在笔记本中运行任何代码时,execute_request会通过笔记本服务器将其发送到"内核",即执行代码的进程.
当内核收到您的代码时,它会通过一系列输入转换器运行它.其中一个检测到此行是魔术命令,并将其重写为:
get_ipython().magic('load_ext sql')
Run Code Online (Sandbox Code Playgroud)
您可以使用查看这些已翻译的命令%hist -t.
该.magic()方法接受其参数的第一个单词load_ext,并在字典中查找.您可以通过运行来查看该字典:
get_ipython().magics_manager.magics['line']
Run Code Online (Sandbox Code Playgroud)
(这可能会有所不同,具体取决于您的IPython版本)
这给了它一个方法的参考IPython.core.magics.extension.ExtensionMagics.load_ext,你可以在这里看到.它使用字符串的其余部分调用该方法.
该方法导入包sql,并调用sql.load_ipython_extension(ip)它来设置它.它取决于它所做的扩展 - 在这种情况下,它注册了一些新的魔术函数.
| 归档时间: |
|
| 查看次数: |
1314 次 |
| 最近记录: |