新编辑神器,可以在终端运行 Jupyter Notebook 了!
在我初學(xué)Python的時(shí)候,一直慣用著安裝式的編輯器軟件,比如PyCharm和Spyder。并且,一直以為編輯器都是這種形式的,有的區(qū)別只是體驗(yàn)和功能上的差異。
直到我后來(lái)遇到了Jupyter Notebook,發(fā)現(xiàn)它是基于web來(lái)運(yùn)行代碼的,并且可以還寫(xiě)markdown的文本,直接打破我對(duì)編輯器的認(rèn)識(shí)。
然而,最近又發(fā)現(xiàn)了一個(gè)新的Jupyter Notebook工具,再次打破我的認(rèn)識(shí)。使用它可以不用在web敲代碼了,它可以讓我們?cè)?strong>終端命令行使用Jupyter Notebook
web和終端對(duì)比
更神奇的是,它也支持代碼交互和markdown的富文本。雖然代碼在哪敲都是敲,并沒(méi)有改變本質(zhì),但真沒(méi)想到基于web的Jupyter Notebook有一天還可以在命令行中運(yùn)行,和大家分享一下,說(shuō)不定哪天能用上。
這個(gè)工具就是 nbterm,下面來(lái)介紹下。
GitHub鏈接:https://github.com/davidbrochart/nbterm
nbterm的使用姿勢(shì)
1. 安裝
支持各種軟件管理包的下載。
$?pip?install?nbterm或者conda
$?mamba?install?nbterm?-c?conda-forge除此外,還需要一個(gè)內(nèi)核,比如適用于Python的ipykernel或xeus-python,適用于C++的xeus-cling。
2. 啟動(dòng)notebook
$?cd?~/nbterm?#你的nbterm存儲(chǔ)路徑 $?nbterm?my_notebook.ipynb然后使用終端來(lái)敲代碼:
3. nbterm基本命令
輸入help可以看到nbterm命令的其它命令選項(xiàng)。
$?nbterm?--help Usage:?nbterm?[OPTIONS]?[NOTEBOOK_PATH]Arguments:[NOTEBOOK_PATH]??Path?to?the?notebook.??[default:?]Options:--no-kernel?????????????????????Don't?launch?a?kernel.--run???????????????????????????Run?the?notebook.--save-path?TEXT????????????????Path?to?save?the?notebook.--version???????????????????????Show?the?version?and?exit.--help??????????????????????????Show?this?message?and?exit.比如,在批處理模式中運(yùn)行notebook所有單元。
$?nbterm?--run?my_notebook.ipynb如果未使用--save-path指定新名稱,則會(huì)自動(dòng)生成名為my_notebook_run.ipynb的新文檔。
嵌入式用法
除了上面那樣操作以外,也可把nbterm當(dāng)作庫(kù)嵌入到自己的程序中,所有協(xié)作者都可以進(jìn)行編輯。比如你可以重新排列單元格,然后一起運(yùn)行:
import?asyncio from?nbterm?import?Notebook nb?=?Notebook("my_notebook.ipynb") nb.cut_cell(3) nb.paste_cell(1) asyncio.run(nb.run_all()) nb.save()一個(gè)輕量級(jí)Jupyter的嘗試
這個(gè)工具的創(chuàng)作者叫David Brochart,是一位任職于quantstack的軟件開(kāi)發(fā)員,致力于Jupyter生態(tài)庫(kù)的開(kāi)發(fā),比如nbclient、jupyter-client、ipykernel、ipywidgets等。
他本人提到,nbterm不會(huì)重用Jupyter的基本組件,如jupyter-client和nbformat,而是想要嘗試不涉及向后兼容限制的新項(xiàng)目,或者說(shuō)測(cè)試一下開(kāi)發(fā)一個(gè)輕量notebook客戶端的難度,所以現(xiàn)在的nbterm還是一個(gè)相當(dāng)精簡(jiǎn)的代碼庫(kù)。
顯然,nbterm對(duì)于notebook而言還是有一些功能需要完善的,比如終端雖然只限制于顯示字符。不過(guò)ASCII碼可以使這個(gè)問(wèn)題迎刃而解。
大佬已經(jīng)使用ASCII后端對(duì)matplotlib圖形庫(kù)嘗試了繪制:
但這個(gè)繪制目前還只能在MacOS上使用。
除此之外,該項(xiàng)目也提出了要添加一些類似ipywidgets的交互功能,以及更多簡(jiǎn)單的滑塊、按鈕、菜單等GUI部件等。
這個(gè)工具雖然目前來(lái)看可用性不強(qiáng),但也確實(shí)是一個(gè)啟發(fā)。就像我當(dāng)時(shí)覺(jué)得web敲代碼很奇怪一樣,隨著逐漸熟悉也就習(xí)慣了,只要它香我在哪敲都行,命令行里敲還能順便裝一下
參考鏈接:?
[1] https://github.com/davidbrochart/nbterm?
[2] https://blog.jupyter.org/nbterm-jupyter-notebooks-in-the-terminal-6a2b55d08b70
推薦閱讀
Pandas處理數(shù)據(jù)太慢,來(lái)試試Polars吧!
懶人必備!只需一行代碼,就能導(dǎo)入所有的Python庫(kù)
絕!關(guān)于pip的15個(gè)使用小技巧
介紹10個(gè)常用的Python內(nèi)置函數(shù),99.99%的人都在用!
可能是全網(wǎng)最完整的 Python 操作 Excel庫(kù)總結(jié)!
總結(jié)
以上是生活随笔為你收集整理的新编辑神器,可以在终端运行 Jupyter Notebook 了!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 直接用IP访问知乎,我发现了一个秘密··
- 下一篇: 8000字 | Python数据可视化,