Jupyter notebook 在通过 /etc/rc.local 运行时找不到内核

Posted

技术标签:

【中文标题】Jupyter notebook 在通过 /etc/rc.local 运行时找不到内核【英文标题】:Jupyter notebook can't find kernel when run through /etc/rc.local 【发布时间】:2016-06-13 21:28:04 【问题描述】:

我在带有 python2(默认)和 ITorch 内核的 EC2 实例上有一个 Jupyter Notebook 服务器。通过 SSH 命令行运行时一切正常。

问题是当我尝试让它在启动时运行时,笔记本服务器找不到 ITorch 内核。不过,我在 python 笔记本上工作得很好。我得到的错误是一个窗口说

Kernel not found
I couldn't find a kernel matching iTorch. Please select a kernel: (python2)

我所做的是将此行添加到/etc/rc.local

 /home/ubuntu/anaconda2/bin/jupyter-notebook --JupyterApp.config-file=/home/ubuntu/.jupyter/jupyter_notebook_config.py &> /dev/null &

笔记本服务器显然运行良好。这是来自系统日志

ip-172-31-20-152 login: [32m[I 12:20:51.073 NotebookApp][0;10m Serving notebooks from local directory: /home/ubuntu/notebook
[32m[I 12:20:51.076 NotebookApp][0;10m 0 active kernels 
[32m[I 12:20:51.078 NotebookApp][0;10m The Jupyter Notebook is running at: https://[all ip addresses on your system]:8888/
[32m[I 12:20:51.081 NotebookApp][0;10m Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

这些是我在配置文件中修改的唯一行

# Configuration file for jupyter-notebook.
c = get_config()
c.NotebookApp.notebook_dir = u'/home/ubuntu/notebook'
c.NotebookApp.certfile = u'/home/ubuntu/certs/mycert.pem'
c.NotebookApp.keyfile = u'/home/ubuntu/certs/mycert.key'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'<password>'
c.NotebookApp.port = 8888

【问题讨论】:

ITorch 内核可能是为您的用户设置的,当系统运行它时,它是另一个用户。运行jupyter kernelspec list查看内核在哪里,如果ITorch在你的主目录下,复制到/usr/local/share/jupyter/kernels/ 做到了。很简单!我想我需要提高我的unix技能。谢谢。 【参考方案1】:

@Thomas K 评论解决了它:

"ITorch 内核可能是为您的用户设置的,当系统运行它时,它是另一个用户。运行jupyter kernelspec list 以查看内核在哪里,如果 ITorch 在您的主目录下,请将其复制到/usr/local/share/jupyter/kernels/"。

【讨论】:

以上是关于Jupyter notebook 在通过 /etc/rc.local 运行时找不到内核的主要内容,如果未能解决你的问题,请参考以下文章

Jupyter Notebook通过latex输出pdf

CAFFE:Ubuntu 下安装jupyter notebook

ubuntu16.04下spyder和jupyter notebook的使用

Jupyter Notebook安装问题

查看jupyter notebook保存文件路径

jupyter配置默认启动目录