<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          新編輯神器,可以在終端運行 Jupyter Notebook 了!

          共 3228字,需瀏覽 7分鐘

           ·

          2021-05-10 13:32

          在我初學Python的時候,一直慣用著安裝式的編輯器軟件,比如PyCharmSpyder。并且,一直以為編輯器都是這種形式的,有的區(qū)別只是體驗和功能上的差異。

          直到我后來遇到了Jupyter Notebook,發(fā)現(xiàn)它是基于web來運行代碼的,并且可以還寫markdown的文本,直接打破我對編輯器的認識。

          然而,最近又發(fā)現(xiàn)了一個新的Jupyter Notebook工具,再次打破我的認識。使用它可以不用在web敲代碼了,它可以讓我們在終端命令行使用Jupyter Notebook

          web和終端對比

          更神奇的是,它也支持代碼交互和markdown的富文本。雖然代碼在哪敲都是敲,并沒有改變本質(zhì),但真沒想到基于web的Jupyter Notebook有一天還可以在命令行中運行,和大家分享一下,說不定哪天能用上。

          這個工具就是 nbterm,下面來介紹下。

          GitHub鏈接:https://github.com/davidbrochart/nbterm

          nbterm的使用姿勢

          1. 安裝

          支持各種軟件管理包的下載。

          $ pip install nbterm

          或者conda

          $ mamba install nbterm -c conda-forge

          除此外,還需要一個內(nèi)核,比如適用于Pythonipykernelxeus-python,適用于C++的xeus-cling。

          2. 啟動notebook

          cd ~/nbterm #你的nbterm存儲路徑
          $ nbterm my_notebook.ipynb

          然后使用終端來敲代碼:

          3. nbterm基本命令

          輸入help可以看到nbterm命令的其它命令選項。

          $ 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.

          比如,在批處理模式中運行notebook所有單元。

          $ nbterm --run my_notebook.ipynb

          如果未使用--save-path指定新名稱,則會自動生成名為my_notebook_run.ipynb的新文檔。

          嵌入式用法

          除了上面那樣操作以外,也可把nbterm當作庫嵌入到自己的程序中,所有協(xié)作者都可以進行編輯。比如你可以重新排列單元格,然后一起運行:

          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()

          一個輕量級Jupyter的嘗試

          這個工具的創(chuàng)作者叫David Brochart,是一位任職于quantstack的軟件開發(fā)員,致力于Jupyter生態(tài)庫的開發(fā),比如nbclient、jupyter-client、ipykernel、ipywidgets等。

          他本人提到,nbterm不會重用Jupyter的基本組件,如jupyter-clientnbformat,而是想要嘗試不涉及向后兼容限制的新項目,或者說測試一下開發(fā)一個輕量notebook客戶端的難度,所以現(xiàn)在的nbterm還是一個相當精簡的代碼庫。

          顯然,nbterm對于notebook而言還是有一些功能需要完善的,比如終端雖然只限制于顯示字符。不過ASCII碼可以使這個問題迎刃而解。

          大佬已經(jīng)使用ASCII后端對matplotlib圖形庫嘗試了繪制:

          但這個繪制目前還只能在MacOS上使用。

          除此之外,該項目也提出了要添加一些類似ipywidgets的交互功能,以及更多簡單的滑塊、按鈕、菜單等GUI部件等。

          這個工具雖然目前來看可用性不強,但也確實是一個啟發(fā)。就像我當時覺得web敲代碼很奇怪一樣,隨著逐漸熟悉也就習慣了,只要它香我在哪敲都行,命令行里敲還能順便裝一下

          參考鏈接: 

          [1] https://github.com/davidbrochart/nbterm 

          [2] https://blog.jupyter.org/nbterm-jupyter-notebooks-in-the-terminal-6a2b55d08b70

          推薦閱讀


          Pandas處理數(shù)據(jù)太慢,來試試Polars吧!
          懶人必備!只需一行代碼,就能導入所有的Python庫
          絕!關(guān)于pip的15個使用小技巧
          介紹10個常用的Python內(nèi)置函數(shù),99.99%的人都在用!
          可能是全網(wǎng)最完整的 Python 操作 Excel庫總結(jié)!

          瀏覽 59
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91成人在线电影 | 欧美特级黄片在线播放 | 成人做爰黄A片免费看直播室男男 | 国产九色视频 | 无码一区二区三区四 |