树莓派3B搭建Jupyter notebook及pyecharts环境的一点经验

前天做 pyecharts 的课程表可视化,感觉如果每次都要render信息生成网页,然后在网页又刷新,才能看到图表,感觉特别麻烦。但是 pyecharts 可以在jupyter notebook,直接运行,马上就可以在代码下方出现图表,很方便。所以决定搭建一个jupyter的环境
Windows上搭建非常简单,就 pip install jupyter,等着完成了 ,然后jupyter notebook 启动jupyter 就OK了
但是, 我没办法一直开电脑,而且运行jupyter有个cmd的窗口很不方便,于是就想起了我这个树莓派。决定操作一波


1. 给树莓派安装Python3.5

sudo apt-get install python3.5 python3-pip
  完成后就有了python3.5和 pip3

2. 安装常用的python package

sudo pip3 install requests bs4 lxml xlwt xlrd django yagmail jupyter pyecharts
  然后会依次安装requests、bs4、lxml这些包。


在这里就已经完成了jupyter和pyecharts的安装了,但是不能正常使用。因为 jupyter 需要 24 小时运行,而我不需要去管,那么登录的时候,就不能使用 jupyter 的默认 token 去登录,这样我每次要写代码,还要去jupyter找一下token。简直太反人类了。
所以需要给 jupyter 配置密码登录,这样不仅每次登录可以接着上次的代码写,而且也不需要去树莓派找token了。



3. 给 jupyter 配置密码登录功能

  我通过百度,找到了几篇博客,感觉写得比较详细的是这个 在服务器端升级python并安装Jupyter,也因此遇到了坑。我按照教程走,设置好了密码,然后看到

## 安装Jupyter插件管理器

Jupyter中邮许多插件,有个插件管理器可以统一管理这些插件[jupyter_contrib_nbextensions]>(https://github.com/ipython-contrib/jupyter_contrib_nbextensions)。
安装也非常简单,使用命令`conda install -c conda-forge jupyter_contrib_nbextensions`就可以自动安装了,>安装完成之后重启Jupyter就可以在浏览器中看到效果。

## []>(http://www.qiuqingyu.cn/2017/05/15/%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E5%8D%87%E7%BA%A7python%E5%B9%B6%E5%AE%89%E8%A3%85Jupyter/#安装jupyterlab "安装jupyterlab")安装[jupyterlab](https://github.com/jupyterlab/jupyterlab)

目前这个项目还在测试过程中,它的目的是增强jupyter的编辑能力,使jupyter如IDE一般强大。
安装:`conda install -c conda-forge jupyterlab`
运行:`jupyter lab`

我安装了,所以之后在使用 pyecharts 的时候报错了。AttributeError: module 'pyecharts' has no attribute 'constants',不管怎么import都会显示,然后看 pyecharts 的文档发现pyecharts不支持jupyterlab,所以我卸载了jupyterlab和他的附属包jupyterlab-launcher,修复了这个问题。


  给 jupyter 设置密码登录其实就简单的3步操作
   1. 生成配置文件. 执行命令 sudo jupyter notebook --generate-config,会在/root/.jupyter文件夹里面生成一个jupyter_notebook_config.py
   2. 生成密码. 在任何一个安装了jupyter的地方,输入然后执行下面的代码

from notebook.auth import passwd
passwd()

我是在电脑本机的notebook 里面执行的,输入2次密码之后就会输出下面的sha1的密钥了。

执行结果

   3. 在jupyter_notebook_config.py中添加密钥信息。这里遇到了一个玄学问题,pi 用户如果 sudo cd /root,会 提示 cd command not found这样的错误,一度让我怀疑我浅薄的linux知识是不是又记错了,然而cd 其他文件夹 都能进去,所以这个定性为玄学问题。所以我换了个办法,用root 用户sftp进去,把配置文件下载下来,更改了再上传回去。更改操作也很简单,在jupyter_notebook_config.py最后加上下面的代码或者把229行开头的#删掉,然后改成这样
c.NotebookApp.password = 'sha1:2766f8b32791:df1f12bafd18ad5930297d7174264bb3bf510792'

4. 启动 jupyter

 输入命令sudo nohup jupyter notebook --port 80 --allow-root --ip 192.168.1.184 --no-browser &回车就OK 了。解释一下这条命令的作用


sudo:   使用超级用户操作
nohup:   一直执行命令,即使关闭了ssh。
jupyter notebook: 在当前文件夹打开jupyter notebook
--port 80:   在本机的80端口监听请求
--allow-root:  &emsp允许使用root用户启动jupyter(监听80端口必须要超级用户权限,所以这个是被迫加上的)
--ip 192.168.1.184: 在192.168.1.184 ip 监听。(如果不加会默认127.0.0.1 会拒绝除本机外的所有访问请求,192.168.1.184就是树莓派的 ip。不知道0.0.0.0行不行,有兴趣可以试一试,如果能行,那就不用知道树莓派的 ip是多少了。经过测试,可以使用0.0.0.0.但是还要要知道树莓派的ip,毕竟要去访问 jupyter,哈哈哈哈)
--no-browser:   不在本机自动打开浏览器
&:   在后台运行这条命令。这样就可以接着去做其他的事情了。


5. 访问 jupyter

在电脑上打开浏览器,输入树莓派的 ip 192.168.1.184 回车,就到了登录界面了


密码登录界面

然后输入你之前设置的密码,然后就进去主界面了,新建了Python代码文件之后,就可以开始写代码啦。


因为是树莓派,所以会有点不一样。测试运行pyecharts的时候,不管怎么样都报错
from PIL import Image\n ImportError: libopenjp2.so.7: cannot open shared object file: No such file
这是个很让人头疼的问题,一看是pillow报错的,不管我重装pillow还是重装pyecharts都不行。百度了很多都没找到办法。最后搜到个Python的包Copreus的页面,发现了安装这个包的办法。
sudo apt install libopenjp2-7 libtiff5 build-essential python-dev,顺便我也把这个帮了我大忙的包安装上了。


大功告成!以后写一点短小的代码或者搞数据相关的代码,就可以不用再打开pycharm啦~!并且手机上打开浏览器就可以写 python 代码了,感觉很方便~~~然后今天找了个大佬帮忙,做了个frp,把这个功能映射到了公网,能打开了,不过运行代码的反应速度比较慢,不知道是不是经过了几层转发的问题。
附上一个测试成功的示例代码,一键运行是真的很方便。

示例
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259

推荐阅读更多精彩内容