jupyter notebook服务器环境搭建及内核管理

jupyter远程访问服务搭建及内核管理

环境准备

sudo apt-get install update
sudo apt-get install python3 python-pip
sudo pip3 install jupyter

修改pip源

Linux编辑 ~/.pip/pip.conf ,在最上方加入如下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

虚拟环境(可选)

sudo pip install -U virtualenv
virtualenv venv -p python3
source venv/bin/activate

创建登陆密码

from notebook.auth import passwd
print(passwd("jupyter"))

Out[2]: ‘sha1:*******************’

创建ssl证书(https连接需要,http可跳过)

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

编辑配置文件

jupyter notebook --generate-config

root用户加上–allow-root

在当前用户根目录下生成..jupyter/jupyter_notebook_config.py文件
修改以下内容:

c.NotebookApp.allow_remote_access = True  # jupyter 4.5版本以上需要配
c.NotebookApp.allow_root = True     #允许root用户运行
c.NotebookApp.ip = '*'   # 允许远程访问(备用参数0.0.0.0)
c.NotebookApp.notebook_dir = r'/root/jupyter'  # 启动目录
c.NotebookApp.open_browser = False    # 默认不启动浏览器
c.NotebookApp.password = 'sha1:xxxxxxxxxx' # 上面生成的密钥
c.NotebookApp.certfile = u'c:/jpyb/mycert.pem'  # 指定文件路径
c.NotebookApp.keyfile = u'c:/jpyb/mykey.key'  # 指定文件路径
c.IPKernelApp.pylab = 'inline'    # 所有matplotlib的图像都通过iline的方式显示
c.NotebookApp.port = 8888     # 运行的端口

  • 查看端口是否占用脚本

netstat -anp|grep 8888

启动jupyter

nohup jupyter notebook &

注:可以写入 sh 脚本,然后设置开机自启

设置阿里云安全组(非阿里云用户无需这一步)

控制台-云服务器ESC-实例 选择自己的主机点击本实例安全组-安全组列表-配置规则-入方向-手动添加添加如下图所示配置
注:其中端口号填写自己设置的端口

在这里插入图片描述

✨更换Logo

图片地址:

/usr/local/lib/python3.5/dist-packages/notebook/static/base/images/logo.png

👍安装扩展插件

github地址

pip3 install jupyter_contrib_nbextensions

pip3 install -U six

jupyter contrib nbextension install --user

📢内核管理

常用操作

查看以安装内核的信息

jupyter kernelspec list

卸载

卸载指定名称的内核,比如: java

jupyter kernelspec remove java

删除

jupyter kernelspec uninstall java   #java  

安装多版本python内核

安装多个py内核后就能像虚拟环境一样运行不同版本的代码了,在jupyter 新建文件时可以选择不同的内核版本,也可以在上方菜单栏点击Kernel - > Change kernel 切换当前内核。

当前场景:以在python3 中安装了jupyter,需要安装 python2 的内核

  1. 在python2(虚拟环境也可)下安装 ipykernel
python2 -m pip install ipykernel
  1. 安装内核到jupyter 中
python2 -m ipykernel install --user --name py2 
# --user安装到当前用户,可查看帮助选择不同安装位置,也可不加该参数,安装到默认位置。--name为内核命名为py2
  1. 查看
jupyter kernelspec list
  1. 重启jupyter

🚀支持C++内核( 需要minicanda或者新建虚拟环境)

利用windows子系统(WSL)或者Linux中

(利用Win10子系统可视化开发环境搭建可参考鄙人文章)

  1. 从windows应用商店里安装Ubuntu子系统

  2. 安装 Miniconda

这里使用 xeus-cling,安装说明指出需要 Miniconda,因为 Anaconda 会有冲突,因此我使用 Miniconda,已经装过 Anaconda 的可以尝试一下用 Anaconda 安装。

在这里找到需要的 Miniconda 版本,然后复制链接:
https://docs.conda.io/en/latest/miniconda.html

通过命令行或者开始菜单打开上一步中安装的 Ubuntu,输入下列命令。

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

出现 License 之后按 q,输入 yes 允许许可,然后 Enter,如果要改路径就自行修改。然后输入 yes 完成初始化

输入which python 发现python路径与Windows里的python路径是隔离的,并不冲突。终于发现子系统的好处了😂。

https://github.com/QuantStack/xeus-cling

安装:

conda install xeus-cling -c conda-forge

安装完之后再次打开 Jupyter notebook,可以在 New 按钮下看到多了 C++11,C++14 和 C++17,新建一个 C++14 notebook,输入一些 C++ 代码,Shift + Enter 可以得到运行结果,没有报错就大功告成了!

☕支持Java

在这里插入图片描述

环境准备:

  1. Java JDK >= 9,注意不是jre

i. 检查java环境

> java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

ii. 接下来,确保Java位于jdk的安装位置,而不仅仅是jre, 使用java --list-modules .输出列表应当包含jdk.jshell.

  • On *nix java --list-modules | grep "jdk.jshell"

  • 在 windows上: java --list-modules | findstr "jdk.jshell"

应当输出jdk.jshell@

如果没有,请输入java -verbose检查第一行或者最后一行的java路径信息,确认java在JDK路径下,而不是JRE中。

  1. 不限类似jupyter的环境
  • Jupyter
  • JupyterLab
  • nteract

安装

  1. 下载地址:https://github.com/SpencerPark/IJava/releases

可选择下载压缩包:ijava-$version.zip

  1. 解压,看到文件install.py 和 一个java文件夹

查看安装帮助:

python3 install.py -h

安装:

python3 install.py --sys-prefix

其他安装选项:--default, --user, --sys-prefix, --prefix, --path, or --legacy,不同选项对应不同安装位置。

查看已经安装的内核,应当包含java,如图:

jupyter kernelspec list

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vdu3CRBV-1596160912130)(assets/untitled.png)]

使用

导包:
直接导入

%jars import org.slf4j.Logger;
%jars import org.slf4j.LoggerFactory;

maven 导入

%%loadFromPOM
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-core</artifactId>
  <version>1.2.3</version>
</dependency>

import ch.qos.logback.core.Layout;

或者

%maven org.slf4j:slf4j-api:1.7.25 ch.qos.logback:logback-core:1.2.3 ch.qos.logback:logback-classic:1.2.3

import org.slf4j.logger;

支持javascript

项目地址: https://github.com/n-riesco/ijavascript

  • 依赖:Node.js、npm

    sudo apt-get install nodejs npm

安装

npm install -g ijavascript
ijsinstall

支持Node JS - jupyter-nodejs

项目地址:https://github.com/notablemind/jupyter-nodejs

使用效果:Example

安装依赖

  • IPython 3.x

  • pkg-config

    sudo apt install pkg-config

  • 安装Node

    sudo apt-get install nodejs
    sudo apt-get install npm

  • 检查node-gyp 是否安装

    node-gyp list

    未安装请自行百度安装

  • 安装ZeroMQ:

    apt-get install libzmq3-dev

    其他安装方式: https://zeromq.org/download/

安装

git clone https://github.com/notablemind/jupyter-nodejs.git --depth=1
cd jupyter-nodejs
mkdir -p ~/.ipython/kernels/nodejs/
npm install && node install.js
npm run build
npm run build-ext

尝试

jupyter console --kernel nodejs

👍其他内核支持

https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值