簡體   English   中英

如何正確關閉 IPython Notebook?

[英]How to close IPython Notebook properly?

如何正確關閉 IPython Notebook?

目前,我只是關閉瀏覽器選項卡,然后在終端中使用Ctrl+C
不幸的是,無論是exit()還是Kill kernel upon exit都沒有幫助(他們確實殺死了 kernel 但不退出 iPython)。

目前沒有比終端中的 Ctrl+C 更好的方法了。

我們正在考慮如何顯式關閉,但是筆記本作為單用戶應用程序(用戶可以自由停止它)和多用戶服務器(只有管理員應該能夠)之間存在一些緊張關系阻止它。 我們還沒有完全弄清楚如何處理這些差異。

(對於未來的讀者,這是 0.12 發布和 0.13 開發中的情況。)

2017 年 12 月更新

IPython Notebook 已成為 Jupyter Notebook。 最近的版本添加了一個jupyter notebook stop shell 命令,該命令將關閉在該系統上運行的服務器。 如果不是默認端口 8888,您可以在命令行中傳遞端口號。

您還可以使用nbmanager ,這是一個桌面應用程序,可以顯示正在運行的服務器並關閉它們。

最后,我們正在努力添加:

  • 如果您在指定時間內不使用服務器,則自動關閉服務器的配置選項。
  • 用戶界面中用於關閉服務器的按鈕。 (我們知道花了這么長時間有點瘋狂。更改 UI 是有爭議的。)

如果你像我一樣在后台運行 jupyter:

jupyter notebook &> /dev/null &

然后要完全退出 jupyter,而不是 Ctl-C,請創建別名命令:

echo 'alias quitjupyter="kill $(pgrep jupyter)"' >> ~/.bashrc

重啟你的終端。 殺死所有 jupyter 實例:

quitjupyter

注意:在單引號內使用雙引號,如上所示。 另一種方式將在將表達式寫入您的 .bashrc 之前對其進行評估(您想編寫命令本身而不是“kill 1430”或任何可能與當前 jupyter 實例相關聯的進程號)。 當然,您可以使用任何您希望的別名。 我實際上使用'qjup':

echo 'alias qjup="kill $(pgrep jupyter)"' >> ~/.bashrc

重啟你的終端。 殺死所有 jupyter 實例:

qjup

我認為接受的答案已經過時,不再有效。

您可以在文件菜單項上從 Web 界面終止 jupyter notebook。

在此處輸入圖片說明

當您將鼠標光標移動到“關閉並暫停”上時,您將看到以下說明。

在此處輸入圖片說明

當您單擊“關閉並暫停”時,您將在終端屏幕上看到以下消息。

在此處輸入圖片說明

第一步是保存所有打開的筆記本。 然后考慮關閉正在運行的 Jupyter Notebook。 您可以使用這個簡單的命令:

$ jupyter notebook stop 
Shutting down server on port 8888 ...

這也將端口號作為參數,您可以優雅地關閉 jupyter notebook。

例如:

jupyter notebook stop 8889 
Shutting down server on port 8889 ...

此外,要了解您當前正在運行的 jupyter 實例,請查看以下命令:

shell> jupyter notebook list 
Currently running servers:
http://localhost:8888/?token=ef12021898c435f865ec706de98632 :: /Users/username/jupyter-notebooks [/code]

這些命令對我有用:

jupyter notebook list # shows the running notebooks and their port-numbers
                      # (for instance: 8080)
lsof -n -i4TCP:[port-number] # shows PID.
kill -9 [PID] # kill the process.

這個答案是從這里改編的。

如果沒有其他工作,請嘗試從任務管理器(如果是 Windows)中終止 pythonw 進程。

Linux (Ubuntu 14.04)

如前所述,嘗試通過首先轉到 ipynb/jupyter 瀏覽器會話中的“運行”選項卡來正確終止 ipython 筆記本進程,然后檢查控制台上打開的終端並使用 ctrl-c 關閉。 如果可能,應避免后者。

如果您運行ipython notebook list並繼續看到在不同端口運行 ipython 服務器,請記下現有 notebook 被提供給哪些端口。 然后關閉你的 TCP 端口:

fuser -k 'port#'/tcp 

我不確定這樣做是否涉及其他風險。 如果是這樣,請告訴我。

實際上,我相信有一種比使用 kill 或任務管理器殺死進程更清潔的方法。

在 Jupyter Notebook 儀表板(您首次啟動“jupyter notebook”時看到的瀏覽器界面)中,瀏覽到您已在瀏覽器中關閉但其內核可能仍在運行的筆記本文件的位置。

iPython Notebook 文件顯示一個書本圖標,如果內核正在運行則顯示為綠色,如果內核未運行則顯示為灰色。

只需選擇正在運行的文件旁邊的復選框,然后單擊出現在其上方的關機按鈕。

這將正確關閉與該特定筆記本關聯的內核。

環境


我的操作系統是 Ubuntu 16.04,而 jupyter 是 4.3.0。

方法


首先,我在瀏覽器的主頁上注銷了 jupyter(注銷按鈕在右上角)

其次,在終端中輸入Ctrl + C並顯示:

[I 15:59:48.407 NotebookApp]interrupted Serving notebooks from local directory: /home/Username 0 active kernels

Jupyter Notebook 運行在: http://localhost:8888/?token=a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82

關閉此筆記本服務器 (y/[n])?

最后一步,在 5 秒內輸入y ,如果它顯示:

[C 15:59:50.407 NotebookApp] 關機確認
[I 15:59:50.408 NotebookApp] 關閉內核

恭喜! 您成功關閉了 jupyter。

選項1

打開另一個控制台並運行

jupyter notebook stop [PORT]

默認的 [PORT] 是 8888,因此,假設 Jupyter Notebooks 在端口 8888 上運行,只需運行

jupyter notebook stop

如果它在端口 9000 上,則

jupyter notebook stop 9000

選項 2來源

  1. 檢查運行時文件夾位置

    jupyter --paths
  2. 刪除運行時文件夾中的所有文件

    rm -r [RUNTIME FOLDER PATH]/*
  3. 使用top查找剩余的 Jupyter Notebook 運行進程,如果是,則終止它們的 PID。

     top | grep jupyter & kill [PID]

可以將其歸結

TARGET_PORT=8888
kill -9 $(lsof -n -i4TCP:$TARGET_PORT | cut -f 2 -d " ")

注意:如果想要在特定 IP/端口上啟動筆記本

jupyter notebook --ip=[ADD_IP] --port=[ADD_PORT] --allow-root &

現在最好的方法是使用“退出”按鈕左側的“退出”按鈕。 我不得不承認,我不明白注銷按鈕的效用。 但是,我很高興他們添加了非常有用的退出按鈕。

如果您在 Mac 上並使用 Jupyter 實驗室,您可以在終端中執行以下操作

jupyter list

以上將為您提供所有正在運行的服務器。 了解帖子后,只需使用 jupyter lab stop。 例如,如果服務器在 8888 上運行,只需執行

jupyter lab stop 8888

在瀏覽器會話中,您還可以轉到Kernel ,然后單擊Restart and Clear Output

我復制從Jupyter / IPython的筆記本電腦快速入門指南文檔粘貼,發布了2月13日,2018年http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

1.3.3 關閉筆記本:內核關閉 當筆記本打開時,它的“計算引擎”(稱為內核)會自動啟動。 關閉筆記本瀏覽器選項卡不會關閉內核,而是內核將繼續運行,直到被明確關閉。 要關閉內核,請轉到關聯的筆記本並單擊菜單 File -> Close and Halt。 或者,Notebook Dashboard 有一個名為 Running 的選項卡,顯示所有正在運行的 notebook(即內核)並允許關閉它們(通過單擊 Shutdown 按鈕)。

總結:首先關閉並停止正在運行的筆記本。

1.3.2 關閉 Jupyter Notebook App 關閉瀏覽器(或選項卡)不會關閉 Jupyter Notebook App。 要完全關閉它,您需要關閉相關的終端。 更詳細地說,Jupyter Notebook 應用程序是一個顯示在瀏覽器中默認地址 ( http://localhost:8888 ) 的服務器。 關閉瀏覽器不會關閉服務器。 可以重新打開之前的地址,Jupyter Notebook App 會重新顯示。 您可以運行 Jupyter Notebook 應用程序的多個副本,它們將顯示在類似的地址處(只有“:”之后的數字,即端口,會隨着每個新副本的增加而增加)。 由於使用單個 Jupyter Notebook 應用程序您已經可以打開多個筆記本,因此我們不建議運行多個 Jupyter Notebook 應用程序副本。

總結:第二,退出你啟動 Jupyter 的終端。

步驟 1 - 在 shell 上執行 control+z (control+c) 步驟 2 _ 關閉網絡瀏覽器

如何正確關閉IPython Notebook?

目前,我只是關閉瀏覽器選項卡,然后在終端中使用Ctrl+C
不幸的是, exit()Kill kernel upon exit都勾選Kill kernel upon exit都無濟於事(它們確實殺死了他們的內核,但不退出iPython)。

要殺死所有jupyter-notebookjupyter-lab ,打開終端並通過提供殺死所有在后台運行的jupyter

pkill jupyter

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM