anaconda升级jupyternotebook_远程Jupyter来实现Python
⽓。。。
⽇常⼯作、学习中可能都会有⼩型⼯作站或者是服务器(云服务器)供⼤家使⽤,⽽且使⽤Python的频率也挺⾼的,那么通常都会有可能个⼈
电脑性能有限、存储空间或者内存有限的情形,那么我们Jupyter notebook就能够发挥很⼤的作⽤,特别是在公司、学校、或者单位局域
⽹的环境下,远程的延迟相对较⼩,使⽤Jupyter来做Python数据处理和绘图实在是不错的选择。远程端负责计算,个⼈电脑仅仅是⼀个编
辑器的作⽤。对于⼀些云服务器,可能相应的端⼝管理会更加严格⼀些,但通过设置远程使⽤Jupyter基本都没有问题。其实,本⽂所提及
的远程使⽤jupyter主要集中于Python的配置、安装、使⽤。各取所需,仅仅做简单推介,不做深⼊的探讨。后⽂以Kaggle的⽓象聚类分
linux中grep的用法析为例,实操⼀下如何远程Jupyter notebook使⽤Python的库来计算和绘图。
⽬标:安装Jupyter,配置服务端Jupyter,远程使⽤Jupyter,⽓象聚类分析。
⼯具:⼀台远程服务器、⼀台本地PC、Python3.x+基础包以及依赖的库、kaggle⽰例测试数据
1.安装Jupyter
回顾以往的帖⼦,Python⼊门标配是安装Anaconda全家桶,如果是macOS或者Linux⾃⾝也会有预安装Python,替换掉!,在你
安装好Anaconda之后,再进⾏后续操作,别问我为什么!
使⽤conda: conda install -c conda-forge jupyterlab
使⽤pip: pip install jupyterlab
上述步骤为远程端的配置安装,更加详细的内容请参考:链接[1]
2.配置Jupyter
配置⽂件所在路径
修改⼀个名为“upyter_notebook_config.py”的⽂件,这个⽂档位于home⽬录之下,不同的操作系统,它所处的位置稍有不同,⼤致如
下:
· Windows: C:\Users\USERNAME\.jupyter\jupyter_notebook_config.py
· OS X: /Users/USERNAME/.jupyter/jupyter_notebook_config.py
· Linux: /home/USERNAME/.jupyter/jupyter_notebook_config.py
创建配置⽂件
如果你在上述路径下没有到这个配置⽂件,那么就需要在终端运⾏如下命令:
[jpnb@centos-7 ~]$ jupyter notebook --generate-configWriting default config to: /home/jpnb/.jupyter/jupyter_notebook_config.py
设置访问密码
[jpnb@centos-7 ~]$ jupyter notebook passwordEnter password: ****Verify password: ****[NotebookP
asswordApp] Wrote hashed password to /home/jpnb/.jupyter/j 下⾯我们还需要⼿动⽣成⼀个hash密码。
可能你会问,为什么前⾯我们⽣成了⼀个Jupyter密码,这⾥还需⽣成⼀个hash密码呢?
原因很简单,如果你没有⽣成这么⼀个hash密码的话,那么每次通过浏览器远程访问Jupyter时,你都需要输⼊⼀次密码,这很繁琐!
但如果我们启⽤了这个hash密码,只需要⾸次远程访问Jupyter⽂档时,输⼊⼀次密码,在下次访问时,这个hash密码就好⽐⼀个钥匙(token),替我们打开密码之门,也就是免密码登录。
为了⽣成这个hash密码,我们需要在终端输⼊“ipython”(全部⼩写)命令,以进⼊IPython的交互shell。
然后在IPython中,依次输⼊如下代码:
In [1]: from notebook.auth import passwdIn [2]: passwd()Enter password:Verify password:Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e 将hash密码添加到配置⽂件中
下⾯,我们把前⾯⽣成的hash密码,添加到前⾯⽣成的配置⽂件:jupyter_notebook_config.py,
如前所述,这个⽂件就在我们家⽬录~/.jupyter中。通过vim打开这个⽂件:
vim ~/.jupyter/jupyter_notebook_config.py
(Windows⽤户可以⽤诸如Notepad++等可视化效果更好的编辑器打开这个⽂件)。
在270⾏左右,到c.NotebookApp.password 所在⾏,将如下代码:
java简单程序设计题目#c.NotebookApp.password = ' '
前⾯的注释符号“#”去掉,然后将“=”右边的赋值,由空字符串’’,修改为前⾯⽣成的hash密码(注意,每个⽤户每次重新⽣成的hash
值都是不同的):
c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
这⾥,特别需要注意的是,hash密码字符串前⾯的那个u不可省略。
编辑配置⽂件
在jupyter_notebook_config.py 中,除了添加前⾯提及的hash密码之外,还要修改如下部分代码(如果这些代码前有注释符号‘#’,则⾸先
将其删除,表⽰启⽤这些设置):
将默认值False修改为True,表⽰允许外部访问,这个设置和下⾯IP设置,双重保障外部⽤户访问的可达性:
等号右边的‘localhost’(仅仅运⾏本地访问),修改为‘*’,表⽰允许所有IP皆可访问
c.NotebookApp.allow_remote_access = True
c.NotebookApp.ip='*'
禁⽌⾃动打开浏览器
c.NotebookApp.open_browser = False
apache无法访问设置⼀个固定的notebook服务会监听的IP端⼝(这⾥设置为9999),这个值可以任意,只要保证不和其他已经启⽤的端⼝号冲突即
可。
c.NotebookApp.port = 9999
做完上述配置之后,保存⽂件并退出。
但此时修改的配置并没有⽣效,我们还需要在终端输⼊“jupyter notebook”命令,这样确保Jupyter重新加
载jupyter_notebook_config.py,进⽽使得新配置起效。
放⾏Linux防⽕墙的端⼝(⾮必须,我的⼯作站就没有这⼀步!使⽤推荐默认端⼝也OK!)
Jupyter Notebook的设置已经接近尾声。但⼯作还没有做完。虽然我们开启了访问的端⼝,但Jupyter Notebook毕竟仅是Linux的⼀个应⽤程序,仅仅是它许可开放某个端⼝,这还不够。Linux还得有个“外交部”——防⽕墙,只有它许可开放,那才是真的开放。因此,下⾯的⼯作就是设置防⽕墙的端⼝开放。倘若开放某个端⼝(如9999),使⽤如下命令:
jpnb@centos-7 .jupyter]$ sudo firewall-cmd --zone=public --add-port=9999/tcp --permanent[sudo] jpnb 的密码:****Success
如果我们开放的不是9999,则修改上述端⼝号即可。
同样,有了新设置,我们还需要重新启动防⽕墙,使之⽣效。使⽤下⾯的命令,即可达到重启防⽕墙的功效:
[jpnb@centos-7 .jupyter]$ sudo systemctl restart firewalld
3.远程Jupyter表格的下拉框怎么设置
“是骡⼦是马,拉出来溜溜”。
配置了半天,我们看看能不能访问远程的Jupyter⽂档呢。我们先通过“ifconfig”来查看⼀下本机IP,这个流程并不是必需的,它主要是要证明,下⾯Jupyter⽂档的访问不是本地完成的。
远程SSH登录Jupyter服务器
现在我们远程SSH登录Jupyter服务器(IP地址为192.168.31.176):
YHMacBookPro:~ yhilly$ ssh jpnb@192.168.31.176jpnb@192.168.31.176's password:Last login: Thu May 2 14:20:19 2019 from 192.168.31.194
在登录之后,我们启动Jupyter服务器,并让这个服务器后台运⾏:
[jpnb@centos-7 ~]$ nohup jupyter notebook &[1] 18505[jpnb@centos-7 ~]$ nohup: 忽略输⼊并把输出追加到"nohup.out"
这⾥简单解释⼀下nohup的含义,nohup就是不挂起的意思( no hang up)。该命令的⼀般形式为:
nohup command &
使⽤&命令后,作业被提交到后台运⾏,当前控制台没有被占⽤,否则,⼀旦把当前终端关掉(退出帐户时),作业就会停⽌运⾏。
nohup命令可以在你退出帐户之后继续运⾏相应的进程。
本地个⼈PC开启远程Jupyter
Jupyter会提⽰我们输⼊先前设置的密码。⼀旦输⼊密码后,就可以在浏览器上看到运⾏的Jupyter⽂档,如图所⽰:
具体参考内容:链接[2]
4.⽓象聚类分析实例
Weather Data Clustering using K-Means Python notebook using data from minute_weather
Clustering with scikit-learn
简单的sql注入语句详情链接:链接[3]气象python零基础入门教程
In this notebook, we will learn how to perform k-means lustering usingscikit-learn in Python.We will use cluster analysis to generate a big picture model of t
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论