Jupyter Notebook是基于网页的用于交互计算的应用程序。可被应用于全过程计算:开发、文档编写、运行代码和展示结果。——Jupyter Notebook官方介绍
简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中「直接」编写和运行代码,代码的运行结果也会直接在代码块下显示。喜欢记得收藏、点赞、关注。
注:文末提供技术交流方式
墙裂建议通过安装Anaconda来解决Jupyter Notebook的安装问题,因为Anaconda已经自动为你安装了Jupter Notebook,还有python中超过180个科学包及其依赖项。
本文就手把手地教大家如何在离线环境下安装Anaconda、配置Jupyter Notebook并安装一些有用的Jupyter扩展组件(jupytext、Nbextensions)
1. 环境准备
1台Linux服务器
操作系统:RedHat 6.8 或者 CentOS 7.2(只在这两个环境下测试过,没有问题,其他操作系统应该也可以)
2. 安装anaconda
2.1 准备安装包
Anaconda3-5.2.0-Linux-x86_64.sh
下载地址:https://repo.anaconda.com/archive/
2.2 添加jupyteradmin用户
以下为root用户操作
groupadd jupyter
useradd -g jupyter jupyteradmin
passwd jupyteradmin
2.3 创建/jupyter目录
mkdir -p /jupyter/data /jupyter/log
chown -R jupyteradmin:jupyter /jupyter
chmod -R 775 /jupyter
2.4 安装anaconda
切换为 jupyteradmin 用户
su - jupyteradmin
安装Anaconda3
bash Anaconda3-5.2.0-Linux-x86_64.sh
接下来会打印许可条款,输入yes即可,还会询问是否修改安装位置,如下所示:
Anaconda3 will now be installed into this location:
/home/jupyteradmin/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/home/jupyteradmin/anaconda3] >>>
我这里点击ENTER,默认安装路径,盆友们也可以根据自己情况修改安装位置。
安装结束后,询问是否将Anaconda3的安装位置加入/home/jupyteradmin/.bashrc
文件中的PATH环境变量,选择yes
,如下所示:
Do you wish the installer to prepend the Anaconda3 install location to PATH in your /home/jupyteradmin/.bashrc ? [yes|no]
[no] >>> yes
又询问是否安装Microsoft VSCode,选择no
.
Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]
>>> no
最后,千万别忘了执行下面的source命令,使.bashrc文件生效:
source .bashrc
2.5 验证anaconda是否安装成功
Linux系统自带的python版本为 2.7.x,而我们安装的Anaconda-5.2.0 对应python版本为3.6.5,因此可以通过python的版本号来判断anaconda是否安装成功。
因为我们是在jupyteradmin 用户下安装的anaconda,所以一定还要在jupyteradmin 用户下,在命令行输入python -V
。如下图所示:
[jupyteradmin@localhost ~]$ python -V
Python 3.6.5 :: Anaconda, Inc.
结果显示为Python 3.6.5 :: Anaconda, Inc.
,说明Anaconda安装成功
另外,利用pip list
或 conda list
可以查看anaconda所集成的各种科学包及其版本号,其中包括 jupyter notebook相关包以及常见的python包。
[jupyteradmin@localhost ~]$ pip list
Package Version
---------------------------------- ---------
alabaster 0.7.10
anaconda-client 1.6.14
anaconda-navigator 1.8.7
anaconda-project 0.8.2
asn1crypto 0.24.0
astroid 1.6.3
astropy 3.0.2
attrs 18.1.0
Babel 2.5.3
## 未完
3. 配置 jupyter notebook
3.1 生成密钥
进入python 命令行,输入下列命令获取密钥 :
from notebook.auth import passwd
passwd()
这里需要输入两次密码,最好是大小写字母与数字、特殊字符的组合,比如Abc1234!,注意:这个密码就是浏览器端访问jupyter的密码,一定要记住喽!
输入两次密码之后,就会生成密钥(格式为:‘sha1: 字符串’),一定记得复制该密钥,后续要加入配置文件。
3.2 生成配置文件
退出python 命令行,在终端输入jupyter notebook --generate-config
,如下
[jupyteradmin@localhost ~]$ jupyter notebook --generate-config
此时会显示配置文件所在目录: /home/jupyteradmin/.jupyter/jupyter_notebook_config.py
3.3 修改配置文件
[jupyteradmin@localhost ~]$ vim /home/jupyteradmin/.jupyter/jupyter_notebook_config.py
在文件末尾添加内容
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
c.NotebookApp.password = u'sha1:6f693062c956:82d4c89aacef5468d7872f5f362e5507754c76e7'
c.ContentsManager.root_dir = '/jupyter/data'
c.PAMAuthenticator.encoding = 'utf8'
第四行 c.NotebookApp.password参数的取值就是3.1步你所生成的密钥哦!注意 'sha1:字符串’前面还有一个u。
3.4 启动 jupyter notebook
在终端输入jupyter notebook
[jupyteradmin@localhost ~]$ jupyter notebook
输出如下:
[I 10:25:59.651 NotebookApp] Writing notebook server cookie secret to /home/jupyteradmin/.local/share/jupyter/runtime/notebook_cookie_secret
[W 10:25:59.818 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 10:25:59.847 NotebookApp] JupyterLab beta preview extension loaded from /home/jupyteradmin/anaconda3/lib/python3.6/site-packages/jupyterlab
[I 10:25:59.847 NotebookApp] JupyterLab application directory is /home/jupyteradmin/anaconda3/share/jupyter/lab
[I 10:25:59.849 NotebookApp] Serving notebooks from local directory: /jupyter/data
[I 10:25:59.850 NotebookApp] 0 active kernels
[I 10:25:59.850 NotebookApp] The Jupyter Notebook is running at:
[I 10:25:59.850 NotebookApp] http://localhost:8888/
[I 10:25:59.850 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
从倒数第三行可以看到:The Jupyter Notebook is running at: http://localhost.localdomain:8888/
。在浏览器访问http://服务器ip:8888/,输入生成密钥时所用的密码,就可以访问jupyter notebook的页面啦!
要将jupyter notebook 在后台挂起,就执行:
nohup jupyter notebook &
这时,jupyter的运行输出结果就保存在了nohup.out文件。
3.5 其他设置
为了提升安全性,运行jupyter notebook的服务器可以做如下防火墙配置:
只允许特定IP客户端访问jupyter页面。
需要设置ip白名单控制。
允许127.0.0.1(本地主机)能够连接49152~65535的端口。
服务器使用这些端口与notebook内核通信,内核通信端口是由ZeroMQ随机选择的,每个内核可能需要多个连接,因此必须有大范围的可访问端口。
jupyter notebook 的访问需要添加个人证书鉴权,提高平台的安全性。
4.安装 jupyter扩展组件
安装前先关闭 jupyter notebook 进程。
4.1 准备安装包
msgpack-1.0.0-cp36-cp36m-manylinux1_x86_64.whl
attrs-20.2.0-py2.py3-none-any.whl
markdown_it_py-0.5.4-py3-none-any.whl
toml-0.10.1-py2.py3-none-any.whl
jupytext-1.6.0.tar.gz
jupyter_highlight_selected_word-0.2.0-py2.py3-none-any.whl
jupyter_contrib_core-0.3.3-py2.py3-none-any.whl
jupyter_latex_envs-1.4.6.tar.gz
jupyter_nbextensions_configurator-0.4.1.tar.gz
jupyter_contrib_nbextensions-0.5.1-py2.py3-none-any.whl
ipyparallel-6.3.0-py3-none-any.whl
4.2 安装部署
使用 jupyteradmin 用户操作
4.2.1 安装Jupytext
注意下面包的安装顺序不要变,因为它们前后有依赖关系。
pip install msgpack-1.0.0-cp36-cp36m-manylinux1_x86_64.whl
pip install attrs-20.2.0-py2.py3-none-any.whl
pip install markdown_it_py-0.5.4-py3-none-any.whl
pip install toml-0.10.1-py2.py3-none-any.whl
pip install jupytext-1.6.0.tar.gz
4.2.2 安装Nbextensions
pip install jupyter_highlight_selected_word-0.2.0-py2.py3-none-any.whl
pip install jupyter_contrib_core-0.3.3-py2.py3-none-any.whl
pip install jupyter_latex_envs-1.4.6.tar.gz
pip install jupyter_nbextensions_configurator-0.4.1.tar.gz
pip install jupyter_contrib_nbextensions-0.5.1-py2.py3-none-any.whl
jupyter contrib nbextension install --user
4.2.3 安装ipyparallel
pip install ipyparallel-6.3.0-py3-none-any.whl
ipcluster nbextension enable --user
4.2.4 重启jupyter notebook
最后,在终端输入nohup jupyter notebook &
命令,重新启动jupyter notebook ,就可以在页面上看到增加了jupytext和Nbextensions的功能入口啦!撒花~
李宏毅《机器学习》国语课程(2022)来了
有人把吴恩达老师的机器学习和深度学习做成了中文版
上瘾了,最近又给公司撸了一个可视化大屏(附源码)
如此优雅,4款 Python 自动数据分析神器真香啊
梳理半月有余,精心准备了17张知识思维导图,这次要讲清统计学
年终汇总:20份可视化大屏模板,直接套用真香(文末附源码)
欢迎转载、收藏、有所收获点赞支持一下!数据、代码可以找我获取
目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友