Linux中國

對 Python 開發者而言,IPython 仍然是 Jupyter Notebook 的核心

最近剛剛寫過我為什麼覺得覺得 Jupyter 項目(特別是 JupyterLab)提供了一種 魔法般的 Python 開發體驗。在研究這些不同項目之間的關聯的時候,我回顧了一下 Jupyter 最初從 IPython 分支出來的這段歷史。正如 Jupyter 項目的 大拆分™ 聲明 所說:

「如果你不明白 Jupyter 是什麼,這麼說吧,它擁有和 IPython 同樣的代碼,並且是由同一批人開發的,只不過取了一個新名字、安了一個新家。」

下面這個註腳進一步說明了這一點:

「我從聲明中解讀出來的信息是,『Jupyter 和 IPython 非常相似,但是擁有多種語言』,這也可以很好地解釋為什麼這個項目的名字已經不再需要包含 Python,因為當時它已經支持多種語言了。」

我明白 Jupyter Notebook 和 IPython 都是從同樣的源代碼里分支出來的,但是不太清楚 IPython 項目的現狀。在大拆分™ 之後它是已經不再被需要了,還是在以另一種方式延續著?

後來我驚訝地發現,IPython 仍然不斷在為 Python 使用者提供價值,它正是 Jupyter 體驗的核心部分。下面是 Jupyter 常見問題頁面的一段截取:

有什麼語言是需要預裝的嗎?

是的,安裝 Jupyter Notebook 會首先安裝 IPython 內核。這樣我們就可以在 notebook 上運行 Python 語言了。

現在我明白了,在 JupyterLab(以及 Jupyter Notebook)上編寫 Python 程序仍然需要依賴 IPython 內核的持續開發。不僅如此,IPython 還充當了最為強大的默認內核的角色,根據 這份文檔,它是其它語言內核之間的樞紐,節省了很多開發時間和精力。

現在唯一的問題是,IPython 本身可以做什麼呢?

IPython 如今的作用

IPython 提供了一個強大的、交互性的 Python shell,以及 Jupyter 的內核。安裝完成之後,我可以在任何命令行運行 ipython 本身,將它當作一個(比默認 Python shell 好太多的)Python shell 來使用:

$ ipython
Python 3.7.3 (default, Mar 27 2019, 09:23:15)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import numpy as np
In [2]: example = np.array([5, 20, 3, 4, 0, 2, 12])
In [3]: average = np.average(example)
In [4]: print(average)
6.571428571428571

這就讓我們發現了一個更為重要的問題:是 IPython 讓 JupyterLab 可以在項目中執行代碼,並且支持了一系列被稱為 Magic 的功能(感謝 Nicholas Reith 在我上一篇文章的評論里提到這點)。

IPython 讓魔法成為現實

JupyterLab 和其它使用 IPython 的前端工具可以讓你感覺像是在最喜歡的 IDE 或者是終端模擬器的環境下工作。我非常喜歡 點文件 快捷鍵功能,Magic 也有類似點文件的特徵。比如說,可以試一下 %bookmark 這個命令。我把默認開發文件夾 ~/Develop 關聯到了一個可以在任何時候直接跳轉的快捷方式上。

![Screenshot of commands from JupyterLab](/data/attachment/album/201907/06/131754rryf8hnvjv08f832.png "Screenshot of commands from JupyterLab")

%bookmark%cd,以及我在前一篇文章里介紹過的 ! 操作符,都是由 IPython 支持的。正如這篇 文檔 所說:

Jupyter 用戶你們好:Magic 功能是 IPython 內核提供的專屬功能。一個內核是否支持 Magic 功能是由該內核的開發者針對該內核所決定的。

寫在最後

作為一個好奇的新手,我之前並不是特別確定 IPython 是否仍然和 Jupyter 生態還有任何聯繫。現在我對 IPython 的持續開發有了新的認識和,並且意識到它正是 JupyterLab 強大的用戶體驗的來源。這也是相當有才華的一批貢獻者進行最前沿研究的成果,所以如果你在學術論文中使用到了 Jupyter 項目的話別忘了引用他們。為了方便引用,他們還提供了一個 現成的引文

如果你在考慮參與哪個開源項目的貢獻的話,一定不要忘了 IPython 哦。記得看看 最新發布說明,在這裡可以找到 Magic 功能的完整列表。

via: https://opensource.com/article/19/6/ipython-still-heart-jupyterlab

作者:Matthew Broberg 選題:lujun9972 譯者:chen-ni 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    捐贈 Let's Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...