在Linux服务器上运行Jupyter notebook server教程

很多deep learning教程都推荐在jupyter notebook运行python代码,方便及时交互。但只在本地运行没有GPU环境,虽然google colab是个好办法,但发现保存模型后在云端找不到模型文件,且需要合理上网才能访问。于是想给实验室的服务器配置jupyter notebook,供本机远程访问。踩了不少坑,码一下教程以供参考。

服务器环境是Ubuntu 16.04.5 LTS 。本机windows10。分配给我的账号没有root权限,自用的python环境是用conda建了一个虚拟环境。

服务器已经装了Anaconda并且自带Jupyter notebook。唯一需要配置的就是如何安全运行notebook server以便能够远程访问它。主要参考官方文档Running a notebook server。

配置Jupyter Notebook Server

生成notebook配置文件

先查看服务器是否已有notebook配置文件,linux下的路径一般是“/home/USERNAME/.jupyter/jupyter_notebook_config.py”。如果没有进行过配置,默认是没有这个文件的,需要自己生成:

$ jupyter notebook --generate-config

这行代码会在当前路径下生成一个.jupyter文件夹,并且文件夹中含有配置文件jupyter_notebook_config.py。

配置密码

如果是notebook5.3以上的版本,此时可以直接运行jupyter notebook命令,会以一个带有token的地址访问notebook,打开后会让你填写token和设置新的password,之后就都以设置的密码登录。

notebook5.0以上的版本,需要运行一行命令 jupyter notebook password ,会让你填写密码和确认密码,并且生成含有密码的hash的jupyter_notebook_config.json在配置文件夹下。

$ jupyter notebook password

Enter password: ****

Verify password: ****

[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json

配置ssh

为了安全起见,使用密码的同时最好也使用SSL,这样就不会直接发送未加密的密码hash。

用openssl生成自签名证书(365天有效期):

$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem

给notebook配置·certfile:

$ jupyter notebook --certfile=mycert.pem --keyfile mykey.key

写入配置文件

编辑 .jupyter 文件夹下的 jupyter_notebook_config.py,按照注释说明加入以下这几行代码,填入之前生成的mycert.pem和mykey.key的路径,以及jupyter_notebook_config.json文件中的密码hash串。

# Set options for certfile, ip, password, and toggle off

# browser auto-opening

c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'

c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key'

# Set ip to '*' to bind on all interfaces (ips) for the public server

c.NotebookApp.ip = '*'

c.NotebookApp.password = u'sha1:bcd259ccf...'

c.NotebookApp.open_browser = False

# It is a good idea to set a known, fixed port for server access

c.NotebookApp.port = 9999

这时候在本机浏览器键入https://xx.xx.xx.xx:9999(服务器ip)就可以访问了。

给notebook指定新的kernel

由于notebook的默认python环境是服务器的base,但我需要用自己的虚拟环境下的python解释器。于是需要给notebook设置新的kernel。

查看当前的python解释器路径

进入我的虚拟环境下运行python,查看Python解释器所在位置:

>>>import sys

>>>sys.executable

同时在Jupyter notebook运行这两行代码,看到的果然是base的路径。

新建notebook kernel

回到base环境运行如下代码,找到Jupyter的内核所在位置。

$jupyter kernelspec list

Jupyter是通过kernels文件夹下的子文件夹来管理kernel的,这时候能看到只有一个python3文件夹。所以如果要建新的kernel,需要新建一个自命名的文件夹,然后把python3文件夹下的kernel.json复制过来,修改参数值(需要root权限)。

编辑新的kernel.json文件,将python路径改为自己虚拟环境中的python,display_name取一个不是python3的以作区分。

{

"argv": [

"/home/lcy/.conda/envs/lcyVenv/bin/python",

"-m",

"ipykernel_launcher",

"-f",

"{connection_file}"

],

"display_name": "lcyPy",

"language": "python"

}

此时打开Jupyter notebook看到了刚刚自定义的新kernel,但新建一个lcyPy文件却发现提示无法连接到kernel。

查到的解决方案是在虚拟环境下安装ipython kernel,代码如下:

$source activate lcyVenv

$conda install notebook ipykernel

$ipython kernel install --user

然后回到base下开启jupyter notebook就能用了。

linux如何查看jupyter日志_在Linux服务器上运行Jupyter notebook server教程相关推荐

  1. jupyter安装插件,以及远程访问服务器上的jupyter notebook

    jupyter安装插件,以及远程访问服务器上的jupyter notebook 文章目录: 1 远程访问服务器上的jupyter notebook 1.1在服务器上安装jupyter notebook ...

  2. abd shell关闭所有程序_在后台服务器上运行程序

    之前总结过screen的用法,但还可以用nohup命令. nohup工具: Linux系统中有提供一个很好的不挂断地运行命令--nohup.我们使用nohup能很简单的控制使用,在此就简单的介绍一下n ...

  3. linux查看mysql连接日志文件,linux下查看mysql日志文件的方法

    查看mysql日志方法: mysql默认不允许我们查看日志.需要更改一些设置 1 vi 更改配置文件 允许用户查看日志文件 sudo vi /etc/mysql/mysql.conf.d/mysqld ...

  4. linux下查看进程的线程数,linux查看进程的线程数

    top -H -p $PID  #查看对应进程的那个线程占用CPU过高 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行 ...

  5. linux:使用yum安装_首次使用Linux:30个安装案例

    linux:使用yum安装 Linux内核在8月25日(星期六)再大一岁.26年前,创建者和BDFL Linus Torvalds可能已经感觉到Linux只能满足一个人的需求. 但是今天我们知道,它改 ...

  6. 服务器如何运行java文件_在linux服务器上运行java文件

    1.  在windows环境下编写java类,如java类是Test类. 2.  将该Test类上传到linux服务器上,命令如下: mapred@10:/bwdata168_2/hyg$rz  -b ...

  7. 在linux云服务器上运行Jar文件

    在linux服务器上运行Jar文件时通常的方法是: $ java -jar test.jar 这种方式特点是ssh窗口关闭时,程序中止运行.或者是运行时没法切出去执行其他任务,有没有办法让Jar在后台 ...

  8. Linux系统如何连接和上传文件到服务器上

    Linux系统如何连接和上传文件到服务器上(图形化界面) 一.Linux连接服务器 1.安装rdesktop sudo apt-get intall rdesktop 2.使用rdesktop指令打开 ...

  9. 组态软件运行在云服务器_能在云服务器上运行软件吗

    能在 云 1.Windows系统的云服务器,可以安装使用与之对应的windows软件,注意要在防火墙把应用端口开放,以便对外提供服务. 2.Linux系统的云服务器,不能像安装windows软件那样, ...

最新文章

  1. 获取用户的IP地址的三个属性的区别
  2. C#_List转换成DataTable
  3. Robberies HDU - 2955
  4. ionic4集成高德地图
  5. SpringMvc Intercetor
  6. Class? getClass()
  7. C#LeetCode刷题之#633-平方数之和( Sum of Square Numbers)
  8. 计算机中i o接口,计算机组成原理 输入输出(I/O)I/O 接口(I/O 控制器)
  9. android统一错误ui展示,Android UI异常分析
  10. Ubuntu18.04在线安装JDK1.8
  11. linux僵尸进程理解,聊聊Linux系统中的僵尸进程
  12. 数据库中的完整性约束及实例
  13. python之路8-内置模块介绍
  14. 神舟测试软件,神舟战神P5常规性能软件测试_神舟 战神P5-i78172D1_笔记本评测-中关村在线...
  15. BTC多空互相蓄力 短期迎来激变
  16. 2022年京东618店庆活动优惠力度怎么样?
  17. epub格式电子书剖析之一:文档构成
  18. 最长递增子序列的O(NlogN)算法
  19. 09 如何通过搜索引擎寻找海量的免费商用图片
  20. 用html实现模糊效果,纯html css实现动态高斯模糊效果(第二弹),实现导航条动态模糊内容...

热门文章

  1. shell字符串长度
  2. 想做开源软件开发谁能带一下呀
  3. UVa 1326 - Jurassic Remains
  4. IOS开发之手势——UIGestureRecognizer 共存
  5. Domino学习笔记之邮件发送程序
  6. Linux强制重新启动系统——重启服务器的最终救济途径
  7. (第一组_GNS3)基于上下文的访问控制
  8. 类名作为方法和形参的返回值
  9. P1103 书本整理
  10. 【NLP】Stanford