姜鹏辉的个人博客 GreyNius

【Linux】jupyter的安装及使用

2019-12-01

本文不完整参考于工作时写的jupyter调研报告,可能信息略有滞后性。

快速启动命令

jupyter notebook --ip='0.0.0.0' --allow-root 
  • –port 默认为8888
  • –notebook-dir

安装

使用pip安装jupyter

安装pip

wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz
tar -xzvf pip-1.5.4.tar.gz
cd pip-1.5.4
python setup.py install

重新编译python

./configure 
Make && make install

使用pip安装juypter

yum install sqlite-devel -y
pip install jupyter

使用Docker启动jupyter

镜像依赖关系

其中的Scipy-notebook安装了pandas, numexpr, matplotlib, scipy, seaborn, scikit-learn, scikit-image, sympy, cython, patsy, statsmodel, cloudpickle, dill, numba, bokeh, sqlalchemy, hdf5, vincent, beautifulsoup, protobuf, xlrd

拉取镜像

docker pull jupyter/datascience-notebook

启动命令

docker run -it -p 8888:8888 jupyter/tensorflow-notebook

其它选项:把参数传递给start-notebook.sh

docker run -it -p 8888:8888 jupyter/base-notebook start-notebook.sh --NotebookApp.base_url=/some/path

后台运行

docker run -d --name jupyter -p 8888:8888 -v "$PWD":/home/jovyan/work jupyter/datascience-notebook  

启动jupyter lab

docker run -d --name jupyter -p 8888:8888 -v "$PWD":/home/jovyan/work jupyter/datascience-notebook  start.sh jupyter lab --NotebookApp.password='argon2:$argon2id$v=19$m=10240,t=10,p=8$7gVfSxZ7wIXugW0RfJvQUw$xmoeKSekY5VuNdwZfnWctA' -e GRANT_SUDO=yes --user root

选项

配置自定义密码

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

启动时

docker run -d -p 8888:8888 jupyter/base-notebook start-notebook.sh --NotebookApp.password='sha1:74ba40f8a388:c913541b7ee99d15d5ed31d4226bf7838f83a50e'

start-notebook.sh在启动笔记本服务器之前指示脚本自定义容器环境。可以通过将参数传递给docker run命令来完成此操作。

  • -e NB_USER=jovyan -指示启动脚本将默认容器用户名更改jovyan为提供的值。使脚本重命名jovyan用户主文件夹。
  • -e NB_UID=1000 指示启动脚本将数字用户ID切换$NB_USER为给定值。在装入具有特定所有者权限的主机卷时,此功能非常有用。要使此选项生效,必须使用运行容器–user root。(启动脚本将su $NB_USER调整该用户ID后。)您可以考虑使用现代化的码头工人的选择–user和–group-add替代。有关详细信息,请参见下面的子弹。
  • -e NB_GID=100 -指示启动脚本将添加$NB_USER到具有给定组ID的新补充组。在装入具有特定组权限的主机卷时,此功能非常有用。要使此选项生效,必须使用运行容器--user root(启动脚本将su $NB_USER调整组ID后。)您可以考虑使用现代化的码头工人的选择–user和–group-add替代。有关详细信息,请参见下面的子弹。
  • -e CHOWN_HOME=yes -指示启动脚本来改变$NB_USER主目录的所有者和组的当前值$NB_UID$NB_GID。即使使用-v如下所述从主机安装用户主目录,此更改也将生效。默认情况下,不会递归地应用更改。您可以chown通过设置CHOWN_HOME_OPTS(例如-e CHOWN_HOME_OPTS=’-R’)更改修改行为。
  • -e CHOWN_EXTRA="<some dir>,<some other dir>- 指示启动脚本将每个以逗号分隔的容器目录的所有者和组更改为当前值$NB_UID$NB_GID。默认情况下,不会递归地应用更改。您可以chown通过设置CHOWN_EXTRA_OPTS(例如-e CHOWN_EXTRA_OPTS=’-R’)更改修改行为。
  • -e GRANT_SUDO=yes 指示启动脚本授予NB_USER用户无密码sudo功能。但是,当您希望能够在容器中$NB_USER安装apt或修改其他根拥有文件时,此选项很有用。要使此选项生效,必须使用运行容器–user root。(该start-notebook.sh脚本将su $NB_USER在添加$NB_USER到sudoers之后。)
  • -e GEN_CERT=yes - 指示启动脚本生成自签名SSL证书并配置Jupyter Notebook以使用它来接受加密的HTTPS连接。
  • -e JUPYTER_ENABLE_LAB=yes- 指示启动脚本jupyter lab而不是默认jupyter notebook命令。在容器编排环境中很有用,其中设置环境变量比更改命令行参数更容易。
  • -v /some/host/folder/for/work:/home/jovyan/work - 将主机目录安装为容器中的文件夹,需要授予容器内用户或组(NB_UID或NB_GID)对主机目录的写访问权限(例如sudo chown 1000 /some/host/folder/for/work)。
  • --user 5000 --group-add users- 使用特定用户ID启动容器,并将该用户添加到该users组,以便它可以修改默认主目录中的文件/opt/conda。您可以使用这些参数作为设置$NB_UID和的替代方法$NB_GID

使用Anaconda安装jupyter

从清华的镜像站下载最新的miniconda的镜像包: https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
执行安装脚本 sh Miniconda3-latest-Linux-x86_64.sh 执行命令conda install jupyter
下载速度慢的解决方法: 执行命令,添加清华镜像源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 
conda config --set show_channel_urls yes 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

同样也可以conda install jupyterhub,conda install jupyterlab

使用

  • 导入python文件
    %load test.py     #test.py是当前路径下的一个python文件
    
  • 运行python文件
    %run file.py
    

添加内核

  • 安装python2内核
    python -m ipykernel install --user --name python2 --display-name "Python 2"
    
  • 安装python3内核
    python -m ipykernel install --user --name python3 --display-name "Python 3"
    

Jupyter工具

使用交互式小部件时,用户可以可视化和控制数据中的更改。研究人员可以很容易地看到改变模型的输入如何影响结果。

  • ipyleaflet(地理空间分析):ipyleaflet是一个用于创建具有平移和缩放的简单交互式地图的库,它支持多边形,标记等注释,更常见的是任何geojson编码的地理数据结构。
  • bqplot(二维交互式数据可视化):bqplot是一个实现图形语法结构的二维交互式数据可视化库,它提供了一个用于创建自定义用户交互的简单API。
  • pythreejs(三维数据可视化):一个3D可视化库,可在Jupyter中实现GPU加速的计算机图形。
  • ipyvolume(三维绘图): 基于使用WebGL的IPython小部件在Jupyter笔记本中对Python进行三维绘图。
  • nglview(三维交互式分子可视化):Jupyter小部件以交互方式查看分子结构和轨迹。
  • beakerX(表格绘图):BeakerX包含用于交互式表格,图表,表单,Apache Spark等的小部件。表格小部件自动识别pandas数据框,并允许您搜索,排序,拖动,过滤,格式化,选择,图形,隐藏,固定和导出到CSV或剪贴板。这样可以快速轻松地连接电子表格
  • jupyter-gmaps(Google 地图上的数据可视化):Gmaps允许您在Jupyter笔记本中嵌入交互式Google地图。使用热图,GeoJSON,符号和标记或绘图方向,流量或循环路径可视化您的数据。让用户在地图上绘制并捕获他们放置的标记或多边形的坐标,以完全用Python构建交互式应用程序。

工具安装方法:

conda install -c conda-forge  + 工具名

官方文档:http://jupyter.org/widgets


Comments

Content