如何正确关闭 IPython 笔记本?

如何正确关闭 IPython 笔记本?

目前,我只是关闭浏览器选项卡,然后在终端中使用 Ctrl+C
不幸的是,无论是 exit()还是标记 Kill kernel upon exit都没有帮助(它们确实杀死了内核,但是没有退出 iPython)。

247452 次浏览

目前在终端中没有比 Ctrl + C 更好的方法了。

我们正在考虑如何有一个明确的关闭,但有一些紧张之间的笔记本电脑作为一个单用户应用程序,用户可以自由地停止它,作为一个多用户服务器,只有一个管理员应该能够停止它。我们还没有完全弄清楚如何处理这些分歧。

(对于未来的读者,这是0.12发布和0.13开发的情况。)

2017年12月最新情况

IPython 笔记本变成了 Jupiter 笔记本。最近的一个版本添加了一个 jupyter notebook stop shell 命令,该命令将关闭在该系统上运行的服务器。如果不是默认端口8888,可以在命令行中传递端口号。

您还可以使用 NBManager,这是一个桌面应用程序,它可以显示正在运行的服务器并关闭它们。

最后,我们正在努力补充:

  • 一个配置选项,用于在指定时间内不使用服务器时自动关闭服务器。
  • 用户界面中关闭服务器的按钮。(我们知道花了这么长的时间有点疯狂。改变用户界面是有争议的。)

如果没有其他工作,尝试从任务管理器(如果 Windows)中终止 pythonw 进程。

Linux (Ubuntu 14.04)

如前所述,尝试正确地关闭 ipython 笔记本进程,首先进入 ipynb/jupyter 浏览器会话中的“ running”选项卡,然后检查控制台上打开的终端并用 ctrl-c 关闭。如果可能的话,应该避免后者。

如果您运行 ipython notebook list并继续看到在不同的端口上运行 ipython 服务器,请注意现有笔记本电脑所服务的端口。然后关闭 TCP 端口:

fuser -k 'port#'/tcp

我不确定这样做是否还有其他风险,如果有,请告诉我。

如果你像我一样在后台运行木星:

jupyter notebook &> /dev/null &

然后完全退出 jupyter,不要使用 Ctl-C,使用别名命令:

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

重启终端,关闭所有木星实例:

quitjupyter

注意: 在单引号中使用双引号,如上所示。反过来,在将表达式写入到。Bashrc (您希望编写命令本身,而不是“ kill 1430”或任何可能与当前 jupyter 实例相关联的进程号)。当然你可以用任何你想用的化名。实际上我用的是“ qjup”:

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

重启终端,关闭所有木星实例:

qjup

在浏览器会话中,还可以转到 Kernel,然后单击 Restart and Clear Output

环境


我的操作系统是 Ubuntu16.04,jupyter 是4.3。

方法


首先,我在 Jupyter 的浏览器主页上注销了它(注销按钮在右上角)

其次,在终端输入 Ctrl + C,它会显示:

[ I 15:59:48.407 NotebookApp ]中断了本地的笔记本服务 目录:/home/Username 0活动内核

朱庇特笔记本的运行速度是: Http://localhost:8888/?token=a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82

关闭这个笔记本服务器(y/[ n ]) ?

最后一步,在5秒内输入 y,如果显示:

[ C 15:59:50.407 NotebookApp ]关闭确认
[ I 15:59:50.408 关闭内核

恭喜,你成功关闭了木星。

实际上,我相信有一种比使用 kill 或任务管理器杀死进程更干净的方法。

在木星笔记本仪表板(你第一次启动“木星笔记本”时看到的浏览器界面)中,浏览到你在浏览器中关闭的笔记本文件的位置,但其内核可能仍在运行。

IPython 笔记本文件显示为图书图标,如果内核正在运行,图标显示为绿色; 如果内核未运行,图标显示为灰色。

只需选择正在运行的文件旁边的勾选框,然后单击其上方的 Shutdown 按钮。

这将正确地关闭与该特定笔记本相关联的内核。

我认为接受的答案过时了,不再有效。

您可以终止木星笔记本从网页界面上的文件菜单项。

enter image description here

当你移动鼠标光标在“关闭和停止”,你会看到下面的解释。

enter image description here

当你点击“关闭并停止”,你会在终端屏幕上看到以下信息。

enter image description here

我复制粘贴从木星/IPython 笔记本快速开始 指南文档,发布于2018年2月13日。 Http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

1.3.3关闭笔记本: 关闭内核 当打开一个笔记本电脑时,它的“计算引擎”(称为内核)会自动启动 笔记本浏览器选项卡,将不会关闭内核,而是内核将继续运行,直到显式关闭。 要关闭一个内核,转到相关的笔记本,点击菜单 File-> Close and Halt。或者, NotebookDashboard 有一个名为 Run 的选项卡,可以显示所有正在运行的笔记本(即内核)并允许关闭 把它们关掉(通过点击关闭按钮)。

摘要: 首先关闭并停止运行笔记本电脑。

1.3.2关闭朱庇特笔记本应用程序 关闭浏览器(或选项卡)将不会关闭木星笔记本应用程序。要完全关闭它,你需要 关闭相关的终端。 更详细地说,木星笔记本应用程序是一个服务器,出现在您的浏览器的默认地址 (http://localhost:8888)。关闭浏览器不会关闭服务器。您可以重新打开以前的地址 而木星笔记本应用程序将被重新显示。 你可以运行木星笔记本应用程序的许多副本,他们将显示在一个类似的地址(只有数字 在“ :”之后,即端口,对于每个新副本都会增加)。因为只要一个木星笔记本应用程序,你就可以 我们已经打开了许多笔记本电脑,因此我们不建议运行多个 Jupyter 版本 笔记本应用。

摘要: 第二,退出你发射朱庇特号的终端。

第一步是保存所有打开的笔记本。然后考虑关闭你的运行木星笔记本。您可以使用以下简单的命令:

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

它也采用端口号作为参数,您可以优雅地关闭 Jupyter 笔记本。

例如:

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.

这个答案改编自 给你

步骤1-在 shell 中只需执行 control + z (control + c) 步骤2 _ 关闭浏览器

选择一

打开另一个控制台并运行

jupyter notebook stop [PORT]

默认的[ PORT ]是8888,因此,假设 Jupiter Notebooks 在端口8888上运行,那么只需运行

jupyter notebook stop

如果它在端口9000上,那么

jupyter notebook stop 9000

选项2 (来源)

  1. 检查运行时文件夹位置

    jupyter --paths
    
  2. 删除运行时文件夹中的所有文件

    rm -r [RUNTIME FOLDER PATH]/*
    
  3. 使用 top找到任何木星笔记本运行进程左,如果是这样,杀死他们的 PID。

    top | grep jupyter &
    kill [PID]
    

一个人可以 总结一下

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

选择三

作为最后的手段,哈里分享的 给你也可以是有益的

sudo pkill -1 -f python

注意 : 如果想在特定的 IP/端口上启动笔记本

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

现在最好的方法是使用“退出”按钮,它就在“注销”按钮的左边。我必须承认,我不理解注销按钮的实用性。不过,我很高兴他们添加了非常有用的退出按钮。

如果你在 Mac 上并且使用木星实验室,你可以在终端做以下事情

jupyter list

以上将为您提供所有正在运行的服务器。一旦你了解了这个职位,只要使用木星实验室停止。例如,如果服务器在8888上运行,那么只需执行

jupyter lab stop 8888