最近使用了一下jupyter notebook搭配GPU服务器这套搭配,顿时打开了一个新天地,记录一下配置过程。
我一般把pythoner中搞机器学习数据分析的叫“科学家”,区别于搞web后端运维测试的“工程师”。而且我发现科学家们特别喜欢用jupyter notebook。起初,这让沉迷JetBrains大法的我不能理解,最近我算是明白了。
jupyter notebook是一种命令式的执行方式,以cell为执行单元,配合优美的前端界面,其执行完毕后可读性极强,对于科学家来说,往往都是简短的计算脚本,用不着单独开一个Pycharm工程,一个比文本编辑器和自带的命令行解释器稍强一点的运行环境就显得非常难得了。而且,写完一个脚本,跑完数据直接就可以给别人汇报了,省了大量写ppt或者markdown的时间有木有。 jupyter notebook对图片的显示方式极其适合调试。
import cv2
cv2.imshow("demo",demo)
cv2.waitKey()
在写openCV时将上面的方式替换为下面的方式后会发现调试起来极其舒服。
import matplotlib.pyplot as plt
%matplotlib inline
plt.imshow(demo)
上面两点是本地运行的优势,这些优势在其他IDE和编辑器中到也没有很明显的舒适度提升,但在服务器远程调试方面,jupyter正好就卡入了一个难觅对手的领域上。对于很多科学家而言,vim和emacs明显是不讨喜的,而在Pycharm中,每起一个工程就配一次SFTP还是有点小耽误时间,而jupyter就正好提供了这种轻量级又有效的方案。
下面是具体的配置过程,包括远程连接的配置与远程虚拟环境的设置。
1、服务器上创建jupyter并远程连接
[1] 安装jupyter
pip install jupyter
or
conda install jupyter#需要装conda
[2] 生成配置文件
jupyter notebook --generate-config
[3] 生成密钥,打开python解释器
python
from notebook.auth import passwd
passwd()
#输入两次密码
#生成key,这个需要复制留存并修改到配置文件中去。
[4] 修改配置文件
vim ~/.jupyter/jupyter_notebook_config.py
配置文件中需要改动这么几行,改好后去掉注释,:wq保存。
c.NotebookApp.ip='*' # 就是设置所有ip地址皆可访问
c.NotebookApp.password = u'sha:ce... # 复制的那个密文key 替换等号后面的内容
c.NotebookApp.open_browser = False # 禁止自动打开浏览器
c.NotebookApp.port =8888 # 指定一个可用端口
[5] 本地地址栏输入<服务器ip>:8888,输入用户名和密码即可访问。
2、安装ipykernel使得jupyter能访问远程的虚拟环境
[1] 启动虚拟环境
source activate <your virtualenv>
[2] 在虚拟环境安装jupyter
pip install jupyter
[3] 在虚拟环境安装ipykernel
pip install ipykernel
[4] 配置ipykernel
python -m ipykernel install --user --name testenv --display-name "Python2 (py2env)"
其中,--name的参数和--display-name的参数根据配置更改。
上面就是配置服务端jupyter的以及激活虚拟环境的全过程,总结一下就是:
安装jupyter,生成key,修改配置文件,按照ip:端口号登陆。 在激活的虚拟环境中安装ipykernel并配置。
❈
作者:丁果,对django、pyqt、opencv、tornado感兴趣。 GitHub:https://github.com/lidingke
❈
最近热门文章
如何用Python做一个骚气的程序员
用Python爬取陈奕迅新歌《我们》10万条评论的新发现
机器学习算法KNN简介及实现
Python有趣的解包用法
用Python分析苹果公司股价数据
Nginx+uwsgi部署Django应用
Python自然语言处理分析倚天屠龙记
Python 3.6实现单博主微博文本、图片及热评爬取