ipthon-SQL是IPython中的延伸,我首先點子安裝IPython中-SQL如何IPython的魔法工作
該項目是在這裏安裝:https://github.com/catherinedevlin/ipython-sql
,我的問題是:
當我輸入%load_ext sql並按SHIFT + ENTER時,IPython執行這個魔術語句的詳細過程是什麼?謝謝...
ipthon-SQL是IPython中的延伸,我首先點子安裝IPython中-SQL如何IPython的魔法工作
該項目是在這裏安裝:https://github.com/catherinedevlin/ipython-sql
,我的問題是:
當我輸入%load_ext sql並按SHIFT + ENTER時,IPython執行這個魔術語句的詳細過程是什麼?謝謝...
當您運行在筆記本上的任何代碼,execute_request
通過筆記本電腦服務器發送到「內核」,它執行你的代碼的過程。
當內核收到你的代碼時,它通過一系列輸入變換器來運行它。其中一個檢測到這條線是一個神奇的命令,將其重寫爲:
get_ipython().magic('load_ext sql')
可以使用%hist -t
這些翻譯命令看到。
.magic()
方法取其參數load_ext
的第一個單詞,然後在字典中查找它。你可以看到,詞典運行:
get_ipython().magics_manager.magics['line']
,賦予其的方法IPython.core.magics.extension.ExtensionMagics.load_ext
,你可以看到here參考(這可能取決於你的IPython的版本會有點不同)。它用字符串的其餘部分調用該方法。
該方法導入包sql
,並調用sql.load_ipython_extension(ip)
進行設置。這取決於它的擴展 - 在這種情況下,它註冊了一些新的魔術功能。
非常感謝,托馬斯,很好的回答 – 2015-04-02 07:57:38