JupyterNotebook安装配置与使⽤详解
本⽂⽰例环境:CentOS 7,远程服务器
可能的依赖:python; pip; python-devel; gcc; gcc-c++;
⼀、安装(命令⾏操作)如果没有pip,要安装pip:
安装 setuptools
cd /tmp
wget /packages/69/56/f0f52281b5175e3d9ca8623dadbc3b684e66350ea9e0006736194b265e99/setuptools-38.2.4.zip#md5=e8e05d4f8162c9341e1089c80f742f64  # 具体下载地址可能变更,请参见官⽹:/pypi/setuptoo unzip setuptools-38.2.4.zip # 我下载的是 .zip 源码,所以⽤ unzip 解压
cd setuptools-38.2.4/
python setup.py install
再安装 pip
cd /tmp
wget /packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.#md5=35f01da33009719497f01a4ba69d63c9  # 同样,具体下载地址参考:/pypi/pip#downloads
tar zxvf pip-9.0. # 解压
cd pip-9.0.1/
python setup.py install
安装 jupyter notebook
如果想⽤ python2:
python -m pip install --upgrade pip
python -m pip install jupyter
如果报错:
………………………………
error: command 'gcc' failed with exit status 1
试试:
sudo yum install gcc gcc-c++ python-devel
再运⾏
如果想⽤ python3:
python3 -m pip install --upgrade pip
python3 -m pip install jupyter
安装完测试⼀下好不好⽤:
若jupyter 部署在远程服务器上,服务器防⽕墙开启时,端⼝可能不能访问,所以加⼀步端⼝开放
firewall-cmd --zone=public --add-port=8888/tcp --permanent
success
systemctl restart firewalld.service
注意:如果是腾讯云等云服务器,可能需要上官⽹管理平台,⼿动配置安全组开放端⼝才⾏
然后启动 jupyter
jupyter notebook --ip=*  # root下换成:jupyter notebook --ip=* --allow-root
命令⾏显⽰:
打开浏览器,输⼊url: localhost:8888,回车,浏览器显⽰:
注意:在远程服务器上部署jupyter的要把 localhost 改成对应的 ip 地址
让你⽤token登录,把上⾯命令⾏反馈的 token (倒数第⼆⾏)复制过来输⼊,登录成功:
⼆、配置
上述步骤创建的 jupyter notebook 是临时性的,没有配置密码、SSL、⼯作⽬录等等,不⽅便也不安全。下⾯为需要的⽤户建⽴专属的配置。
注意:下⽂中的例⼦在 root 账户下进⾏,建议实际不要⽤ root ⽤户。
配置⽂件⽣成
如果服务器上你的账户下已有默认 jupyter ⽤户(的配置⽂件),可以直接拷贝⼀份,改个名字,⽐如:
cd /root/.jupyter
cp jupyter_notebook_config.py jupyter_my_config.py
或者,直接⾃⼰个任意⽬录,⽐如 /root/my_configs,直接创建⼀个新⽂件作为配置⽂件(反正就是个⽂本⽂件,放哪⾥都⾏):
mkdir /root/my_configs
cd /root/my_configs
touch jupyter_notebook_config.py
再或者,账户下未建⽴默认 jupyter 配置⽂件的情况下,可以⾃动⽣成:
jupyter notebook --generate-config
现在假设我们的配置⽂件是⽤最后⼀种⽅式创建的,我们进⼊⽬录看看
[root@VM_157_11_centos ~]# cd /root/.jupyter/
[root@VM_157_11_centos .jupyter]# ls
jupyter_notebook_config.py
[root@VM_157_11_centos .jupyter]#
配置⽂件编辑
打开 jupyter_notebook_config.py ⽂件:
vim jupyter_notebook_config.py
可以看到全是注释的配置说明,⽐较复杂,也不是都⽤得上,这⾥我们⾃⼰写⼀些重要的配置即可,在⽂件开头写⼊:
c = get_config()
c.IPKernelApp.pylab = "inline"
c.NotebookApp.ip = "*"
c.NotebookAPp.open_browser = False
c.NotebookApp.password = 'sha1:b39d2445079f:9b9ab99f65150e113265cb99a841a6403aa52647'
file = u'/root/.jupyter/mycert.pem'
c.NotebookApp.port= 8888
book_dir = "/root/ipython"
注意1:第五⾏ password 填⼊的是<;登录密码的 sha1 加密版>,通过以下⽅式⽣成:
[root@VM_157_11_centos .jupyter]# python
Python 2.7.5 (default, Aug 4 2017, 00:39:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from IPython.lib import passwd
>>> passwd()免费ssl证书永久生成
Enter password:
Verify password:
'sha1:175e8efe8974:eacef02a2e3f959d6efdf6c93d142c7f4712f5cc'
>>> exit()
[root@VM_157_11_centos .jupyter]#
注意2:第六⾏的 certfile 证书⽂件可以通过下⾯这⾏命令⽣成(中间的交互信息可以随便填),注意路径要对应上:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
注意3:第七⾏的 port 应该是⼀个未被占⽤的、被防⽕墙允许的端⼝(在上⾯的步骤我们已经打开了 8888 端⼝),这⾥再强调⼀遍(同样的,腾讯云等服务器需要在官⽹修改安全策略):
firewall-cmd --zone=public --add-port=8888/tcp --permanent
success  # 系统反馈信息
systemctl restart firewalld.service
注意4:第⼋⾏的 notebook_dir 是你的⽂档⽬录,需要⾃⾏选择并创建(否则运⾏时会报错):
mkdir /root/ipython
运⾏
[root@VM_157_11_centos .jupyter]# jupyter notebook --config jupyter_notebook_config.py --allow-root
[I 19:58:54.278 NotebookApp] Serving notebooks from local directory: /root/ipython
[I 19:58:54.279 NotebookApp] 0 active kernels
[I 19:58:54.279 NotebookApp] The Jupyter Notebook is running at:
[I 19:58:54.279 NotebookApp] [all ip addresses on your system]:8888/
[I 19:58:54.279 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 19:58:54.279 NotebookApp] No web browser found: could not locate runnable browser.
关于参数:–config 是可选的,默认会⽤ jupyter_notebook_config.py ⽂件,如果有多个⽤户配置⽂件(给多个⽤户分别提供 jupyter notebook),就必须要⽤这个命令了。–allow-root 是 root ⽤户启动jupyter notebook 时的必须参数,实际上不建议使⽤ root 启动 jupyter notebook,最好还是⽤其他⽤户启动,这样在浏览器端 cmd 窗⼝就不⾄于直接暴露 root 权限。
后台运⾏:实际使⽤的时候我们当然会让 jupyter notebook 在后台⼀直运⾏着,即使我断开 ssh 连接之后也要可以通过浏览器访问。那也简单,⽤ nohup 命令就可以了:
nohup jupyter notebook --config jupyter_notebook_config.py --allow-root 2>&1 > my.log &
⽤该命令启动 jupyter notebook 之后,原先打印在屏幕上⾏的⽇志会写⼊到 my.log ⽂本⽂件中(该⽂件路径可以替换,当然完全不想要⽇志的话也可以重定向到 /dev/null)。
浏览器端访问
[W 20:39:48.439 NotebookApp] SSL Error on 10 ('58.59.67.94', 61845): [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:579)
[W 20:39:49.869 NotebookApp] SSL Error on 10 ('58.59.67.94', 61849): [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:579)
再注意:由于我们⽣成的 SSL 证书是⾮正式签发的,所以Chrome等浏览器可能会提⽰“您的连接不是私密连接”之类的风险问题,这⾥选“⾼级” – “继续前往”就好了。
正常进⼊主页
点击右上⾓的 New 就可以创建 notebook ⽂件,然后交互式的写程序了~
三、增加 python3 内核
在主页中,我们可以单击 New 然后创建 python 2 和 python 3 的 notebook ⽂件,但是实际上默认只有⼀个 python 2 的内核(上⾯⽤ python 2 安装的 jupyter),New 出来的 python 3 notebook 实际上还是 python 2 的,运⾏⼀下 “print 123”,不会报错(python 3 需要 print(123) )。
已有 python 2,安装 python 3内核:
python -m ipykernel install --user
python3 -m pip install -U ipykernel
python3 -m ipykernel install --user
这个时候再去主页,选择 python 3 时就可以⽤ python 3 的 kernel 了。
四、Jupyter Notebook 的⼩“坑”
这⾥不定时记录⼀些⽤的时候遇到的问题,以及解决⽅法。
环境变量问题:如果在代码内修改了环境变量,需要重启 kernel 才能⽣效;
常驻内存既是优点也是缺点,长期不⽤的话要⾃⼰主动去把 Running 中的项 Shutdown;
待续。
到此这篇关于Jupyter Notebook 安装配置与使⽤详解的⽂章就介绍到这了,更多相关Jupyter Notebook 安装配置内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。