Mrli
别装作很努力,
因为结局不会陪你演戏。
Contacts:
QQ博客园

搭建Jupyter、JupyterLab服务器

2020/12/05 机器学习 环境配置 Python
Word count: 2,562 | Reading time: 11min

搭建Jupyter服务器

1.配置好Python环境及安装pip

2.安装jupyter:

pip3 install jupyter (此处使用的是python3)

3.生成配置文件

jupyter notebook --generate-config

4.生成密钥:

终端输入$ ipython

1
2
3
4
5
6
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
#此时会让你两次输入密码,然后就会生成秘钥
#************

5.修改配置文件vim ~/.jupyter/jupyter_notebook_config.py

1
2
3
4
5
6
7
c=get_config()
c.IPKernelApp.pylab ="inline"
c.NotebookApp.ip='*' # 设置所有ip皆可访问
c.NotebookApp.password = 'sha1:x' # 刚生成的密文
c.NotebookApp.open_browser = False # 禁止自动打开浏览器
c.NotebookApp.port = 9999 # 指定运行端口
c.NotebookApp.notebook_dir = '/home/apollo3d/tf/jupyter_home' # 指定Jupyter的工作目录

拓展:云服务器搭建神器JupyterLab(转)

JupyterLab是一个交互式的开发环境,其用于应对包含着notebook、代码以及数据的工作场景。

1、前言

如果说vim是编辑器之神,那么JupyterLab就是笔记本之神。

从2017年开始我注意到这一神奇的IDE笔记本,第一眼见到它,就觉得它真的太强大了,作为一个交互式的Python开发工具,其实也不算开发工具,准确的来说,它是一个演示代码的科学数据工具,支持markdown预览,支持Draw扩展,支持丰富的文件格式和多种开发语言,拥有众多插件诸于GitHub, Google-Dirve, Git和TOC,更重要的是,它是把浏览器当作开发工具,十分有创意。JupyterLab的开发者众多,GitHub上面的isuue也十分活跃,众多的大牛开发者也纷纷加入到JupyterLab的阵营,为JupyterLab的发展作贡献,JupyterLab得到迅速发展。

好的工具当然是要好好利用了,回归正题,怎样通过云服务器搭建一个可远程使用的JupyterLab?

2、添加ppa源

1
2
3
4
root@iZwz9huxtbd86xp91s3j16Z:~# sudo add-apt-repository ppa:chronitis/jupyter
$ sudo: add-apt-repository: command not found
# 出现这种情况,可以如下解决
# $ sudo apt-get install software-properties-common

3、配置python

1
2
3
4
5
6
$ sudo apt-get install python-pip python-dev build-essential 
$ sudo pip install --upgrade pip #
$ sudo pip install --upgrade virtualenv #安装虚拟环境
# 升级pip
$ sudo pip3 install --upgrade pip
$ sudo pip2 install --upgrade pip

如果没有换源,先进行换源,下载速度会快很多

1
2
3
cat > ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

npmyarn也可以换源,更简单,自行google

pip国内的一些镜像包,换源之后出现python2版本过低的情况导致以前的包下载不了,那就直接将文件夹~/.pip/pip.conf删除就可以恢复原来的源。

pip指向问题
有时候会出现pip,pip2,pip3都TM指向python2,这个之后就需要改一下这这三个文件。

编辑这三个文件,将第一行注释分别改为python\python2\python3

1
2
3
4
5
6
7
8
~ $which pip
/usr/local/bin/pip
21:36 alien@alien-Inspiron-3443:
~ $which pip2
/usr/local/bin/pip2
21:36 alien@alien-Inspiron-3443:
~ $which pip3
/usr/local/bin/pip3

安装yarnnodejs

配置仓库

1
2
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

安装yarn

1
2
3
sudo apt-get update
sudo apt-get install yarn
# 如果这边安装后,报错NameError: name 'CoreConfig' is not defined,那么需要更新nodejs版本

注意这里yarn自动安装了nodejs,不过版本太低,安装jupyterlab的时候会出问题,而且使用n或者nvm安装的nodejs也有问题,总之nodejs要按照下面这种方式就没事,这个是官方的bug,官方issue也提到过,但是目前还未解决。

如果版本过低,安装插件、或是jupyter lab build发生NameError: name 'CoreConfig' is not defined错误,则可能是nodejs版本过低导致.我出现这个Bug后找了提了issue也没解决,后来突然想起了这边提到的nodejs版本问题,于是更新后解决…nodejs更新方式见附录

安装nodejs

创建一个新文件,输入两行deb,结束之后Ctrl+C:

1
2
3
cat > /etc/apt/sources.list.d/nodesource.list
deb https://deb.nodesource.com/node_6.x xenial main
deb-src https://deb.nodesource.com/node_6.x xenial main

导入公匙并安装nodejs,这个版本的nodejsjupyterlab支持比较友好。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
sudo apt-get update
apt-cache policy nodejs
sudo apt-get install nodejs
nodejs --version

​```shell

#### 安装`ipython,matplotlib,scipy,pandas,numpy`

最好`python2`和`python3`都安装。

## 安装`JupyterLab`及其配置

> 配置同上文Jupyter配置

​```shell
# 安装
sudo pip3 install jupyterlab
# 生成密码
jupyter-notebook password

创建哈希密码

1
2
3
4
5
from notebook.auth import passwd
passwd()
# 输入你自己设置登录JupyterLab界面的密码,
# 然后就会生产下面这样的密码,将它记下来,待会儿用
'sha1:b92f3fb7d848:a5d40ab2e26aa3b296ae1faa17aa34d3df351704'

修改JupyterLab配置文件

先生成一个配置文件,记下输出的配置文件地址

jupyter lab --generate-config->

1
2
3
4
5
6
c.NotebookApp.allow_root = True #允许以root方式运行jupyterlab
c.NotebookApp.ip = '0.0.0.0' #允许任意ip段访问
c.NotebookApp.notebook_dir = u'/root/JupyterLab' # 设置jupyterlab页面的根目录
c.NotebookApp.open_browser = False#默认运行时不启动浏览器,因为服务器默认只有终端
c.NotebookApp.password = u'sha1:b92f3fb7d848:a5d40ab2e26aa3b296ae1faa17aa34d3df351704'#设置之前生产的哈希密码
c.NotebookApp.port = 8080#设置访问端口

到此,JupyterLab已经安装成功了。

1
2
3
4
5
6
7
8
$ jupyter-lab --version
>>> 0.33.12
$ jupyter lab build
# build没成功,可以看看是不是内存限制,试试下面的命令

# cross-env NODE_OPTIONS=--max_old_space_size=4096 webpack --config webpack.prod.minimize.config.jserror Command failed with exit code 1.
"""
# jupyter lab build --minimize=False

jupyter lab build时间有点久,如果没报错就成功了

4、运行JupyterLab

1
$ jupyter lab &

JupyterLab运行虚拟环境

  1. 在jupyter lab中使用虚拟环境
    进入虚拟环境后输入以下代码,则在jupyter中创建出虚拟环境(env_name)下的kernel
1
2
pip install ipykernel
python -m ipykernel install --user --name env_name

  1. 删除创建的kernel
    CMD窗口下打开jupyter lab后若要关闭,Ctrl+C;也可在jupyter lab中打开终端输入命令,但此时输入退出/打开虚拟环境命令(deactivate/workon等)是无效的,即始终处在虚拟环境中
1
2
jupyter kernelspec list #查看所有kernel
jupyter kernelspec remove kernel_name #卸载kernel_name

JupyterLab扩展安装

1
2
3
4
5
6
7
jupyter labextension list # 查看已经安装的扩展及其状态:
jupyter labextension install @mflevine/jupyterlab_html # 比如安装一个扩展jupyterlab_html,支持html预览:
jupyter labextension uninstall @mflevine/jupyterlab_html #卸载扩展:
jupyter labextension update --all #更新所有扩展:

# 安装一个生成目录的插件
jupyter labextension install @jupyterlab/toc

还有功能

  • 支持做图
  • markdown
  • 多标签
  • 内部打开网页
  • latex

快捷键

编辑模式命令

  • 执行当前cell,执行后不自动调转到下一个cell:Ctrl-Enter
  • 使当前的cell进入编辑模式:Enter
  • 退出当前cell的编辑模式:Esc

命令模式:

  • 删除当前的cell:双D
  • 为当前的cell加入line number:单L
  • 将当前的cell转化为具有一级标题的maskdown:单1
  • 将当前的cell转化为具有二级标题的maskdown:单2
  • 将当前的cell转化为具有三级标题的maskdown:单3
  • 撤销对某个cell的删除:z
  • 浏览器的各个Tab之间切换:Up和Dn

附录

jupyter notebook设置一个执行单元多个输出

1
2
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

nodejs更新

1
2
3
4
5
6
7
8
9
10
11
# 查看更新前的版本
$ node -v
v4.2.1
$ sudo npm cache clean -f
$ sudo npm install -g n
$ sudo n stable
# 软链接,VERSION改成新的版本(删了后按TAB键)
$ sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/nodejs
# 查看是否更新成功
$ node -v
v10.16.3

安装内核

安装Python内核

如果需要python2和python3同时存在的话

1
2
3
4
5
6
7
8

$ sudo pip2 install ipykernel
$ sudo pip3 install ipykernel
# 查看已经安装的内核
jupyter kernelspec list
# 删除你不需要的内核
$ jupyter kernelspec remove <kernel_name>
/root/JupyterLab

安装ijavascript

1
2
3
4
5
sudo add-apt-repository ppa:chronitis/jupyter
sudo apt-get update
sudo apt-get install ijavascript
# ihaskell、ijulia、irkernel、iruby
# https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

插件安装

jupyterlab-toc(目录功能)

Installation

1
jupyter labextension install @jupyterlab/toc

Jupyterlab-Tensorboard

Installation

1
$ jupyter labextension install jupyterlab_tensorboard

img

img

img

img](http://image.rexking6.top/img/clip1545289922.png)

JupyterLab drawio(processon图)

Installation

1
jupyter labextension install jupyterlab-drawio

img

注,图片来自RexKing6’s Note

variableinspector

像matlab一样查看工作区变量

jupyter labextension install @lckr/jupyterlab_variableinspector

go_to_definition插件

在lab中按alt+ 点击变量名 or 函数名,可以跳转到其对应的最初定义的地方(注意看闪烁光标的位置变化)。

img

快捷键

Up : 选中上方单元
K : 选中上方单元
Down : 选中下方单元
J : 选中下方单元
Shift-K : 扩大选中上方单元
Shift-J : 扩大选中下方单元
A : 在上方插入新单元
B : 在下方插入新单元
X : 剪切选中的单元
C : 复制选中的单元
Shift-V : 粘贴到上方单元
V : 粘贴到下方单元
Z : 恢复删除的最后一个单元
D,D : 删除选中的单元
Shift-M : 合并选中的单元
I,I : 中断Notebook内核0,0
0,0 :重启Notebook内核
Tab : 代码补全或缩进
Shift-Tab : 提示
Ctrl-] : 缩进
Ctrl-[ : 解除缩进
Ctrl-A : 全选
Ctrl-Z : 复原
Ctrl-Shift-Z : 再做
Ctrl-Y : 再做
Ctrl-Home : 跳到单元开头
Ctrl-Up : 跳到单元开头
Ctrl-End : 跳到单元末尾
Ctrl-Down : 跳到单元末尾
Ctrl-Left : 跳到左边一个字首
Ctrl-Right : 跳到右边一个字首
Ctrl-Backspace : 删除前面一个字
Ctrl-Delete : 删除后面一个字
Esc : 进入命令模式
Ctrl-M : 进入命令模式
Shift-Enter : 运行本单元,选中下一单元
Ctrl-Enter : 运行本单元
Alt-Enter : 运行本单元,在下面插入一单元
Ctrl-Shift-- : 分割单元
Ctrl-Shift-Subtract : 分割单元
Ctrl-S : 文件存盘
Shift : 忽略
Up : 光标上移或转入上一单元
Down :光标下移或转入下一单元

Author: Mrli

Link: https://nymrli.top/2019/09/21/搭建Jupyter服务器/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
同性交友网站Github的骚操作
NextPost >
深度学习
CATALOG
  1. 1. 搭建Jupyter服务器
  2. 2. 拓展:云服务器搭建神器JupyterLab(转)
    1. 2.1. 1、前言
    2. 2.2. 2、添加ppa源
    3. 2.3. 3、配置python
      1. 2.3.1. 安装yarn和nodejs
        1. 2.3.1.1. 配置仓库
        2. 2.3.1.2. 安装yarn
        3. 2.3.1.3. 安装nodejs
      2. 2.3.2. 创建哈希密码
      3. 2.3.3. 修改JupyterLab配置文件
    4. 2.4. 4、运行JupyterLab
      1. 2.4.1. JupyterLab运行虚拟环境
    5. 2.5. JupyterLab扩展安装
      1. 2.5.1. 快捷键
  3. 3. 附录
    1. 3.1. jupyter notebook设置一个执行单元多个输出
    2. 3.2. nodejs更新
    3. 3.3. 安装内核
    4. 3.4. 插件安装
      1. 3.4.1. jupyterlab-toc(目录功能)
      2. 3.4.2. Jupyterlab-Tensorboard
      3. 3.4.3. JupyterLab drawio(processon图)
      4. 3.4.4. variableinspector
      5. 3.4.5. go_to_definition插件
    5. 3.5. 快捷键