美文网首页
搭建Jupyter、JupyterLab服务器

搭建Jupyter、JupyterLab服务器

作者: 我只要喝点果粒橙 | 来源:发表于2019-10-07 18:22 被阅读0次

    搭建Jupyter服务器

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

    2.安装jupyter:

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

    3.生成配置文件

    jupyter notebook --generate-config

    4.生成密钥:

    终端输入$ ipython

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

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

    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源

    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

    $ 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
    

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

    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

    ~ $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

    配置仓库

    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

    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:

    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支持比较友好。

    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
    

    创建哈希密码

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

    修改JupyterLab配置文件

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

    jupyter lab --generate-config->

    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已经安装成功了。

    jupyter-lab --version
    0.33.12
    jupyter lab build
    

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

    JupyterLab扩展安装

    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

    附录

    nodejs更新

    # 查看更新前的版本
    $ 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同时存在的话

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

    安装ijavascript

    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

    jupyter labextension install @jupyterlab/toc
    

    Jupyterlab-Tensorboard

    Installation

    $ jupyter labextension install jupyterlab_tensorboard
    
    img img img img ](http://image.rexking6.top/img/clip1545289922.png)

    JupyterLab drawio(processon图)

    Installation

    jupyter labextension install jupyterlab-drawio
    
    img

    注,图片来自RexKing6's Note

    variableinspector

    像matlab一样查看工作区变量

    jupyter labextension install @lckr/jupyterlab_variableinspector

    go_to_definition插件

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

    [图片上传失败...(image-a3cb35-1570443897687)]

    快捷键

    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 :光标下移或转入下一单元

    相关文章

      网友评论

          本文标题:搭建Jupyter、JupyterLab服务器

          本文链接:https://www.haomeiwen.com/subject/zkimpctx.html