前天做 pyecharts 的課程表可視化行瑞,感覺如果每次都要
render
信息生成網(wǎng)頁,然后在網(wǎng)頁又刷新挠轴,才能看到圖表势篡,感覺特別麻煩翩肌。但是 pyecharts 可以在jupyter notebook,直接運行禁悠,馬上就可以在代碼下方出現(xiàn)圖表念祭,很方便。所以決定搭建一個jupyter的環(huán)境
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這些包疤估。
在這里就已經(jīng)完成了jupyter和pyecharts的安裝了灾常,但是不能正常使用。因為 jupyter 需要 24 小時運行铃拇,而我不需要去管钞瀑,那么登錄的時候,就不能使用 jupyter 的默認(rèn) token 去登錄慷荔,這樣我每次要寫代碼雕什,還要去jupyter找一下token。簡直太反人類了。
所以需要給 jupyter 配置密碼登錄贷岸,這樣不僅每次登錄可以接著上次的代碼寫壹士,而且也不需要去樹莓派找token了。
3. 給 jupyter 配置密碼登錄功能
? 我通過百度偿警,找到了幾篇博客躏救,感覺寫得比較詳細(xì)的是這個 在服務(wù)器端升級python并安裝Jupyter,也因此遇到了坑螟蒸。我按照教程走盒使,設(shè)置好了密碼,然后看到
## 安裝Jupyter插件管理器 Jupyter中郵許多插件七嫌,有個插件管理器可以統(tǒng)一管理這些插件[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 的文檔發(fā)現(xiàn)pyecharts不支持jupyterlab褪测,所以我卸載了jupyterlab和他的附屬包jupyterlab-launcher,修復(fù)了這個問題潦刃。
? 給 jupyter 設(shè)置密碼登錄其實就簡單的3步操作
?? 1. 生成配置文件. 執(zhí)行命令 sudo jupyter notebook --generate-config
侮措,會在/root/.jupyter
文件夾里面生成一個jupyter_notebook_config.py
?? 2. 生成密碼. 在任何一個安裝了jupyter的地方,輸入然后執(zhí)行下面的代碼
from notebook.auth import passwd
passwd()
我是在電腦本機的notebook 里面執(zhí)行的,輸入2次密碼之后就會輸出下面的sha1的密鑰了乖杠。
?? 3. 在jupyter_notebook_config.py
中添加密鑰信息分扎。這里遇到了一個玄學(xué)問題,pi 用戶如果 sudo cd /root
胧洒,會 提示 cd command not found
這樣的錯誤畏吓,一度讓我懷疑我淺薄的linux知識是不是又記錯了,然而cd 其他文件夾 都能進(jìn)去卫漫,所以這個定性為玄學(xué)問題菲饼。所以我換了個辦法,用root 用戶sftp進(jìn)去列赎,把配置文件下載下來宏悦,更改了再上傳回去。更改操作也很簡單,在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: ??一直執(zhí)行命令,即使關(guān)閉了ssh派哲。
jupyter notebook: 在當(dāng)前文件夾打開jupyter notebook
--port 80: ??在本機的80端口監(jiān)聽請求
--allow-root: ?&emsp允許使用root用戶啟動jupyter(監(jiān)聽80端口必須要超級用戶權(quán)限臼氨,所以這個是被迫加上的)
--ip 192.168.1.184: 在192.168.1.184 ip 監(jiān)聽。(如果不加會默認(rèn)127.0.0.1 會拒絕除本機外的所有訪問請求芭届,192.168.1.184就是樹莓派的 ip储矩。不知道0.0.0.0行不行,有興趣可以試一試褂乍,如果能行持隧,那就不用知道樹莓派的 ip是多少了。經(jīng)過測試逃片,可以使用0.0.0.0.但是還要要知道樹莓派的ip屡拨,畢竟要去訪問 jupyter,哈哈哈哈)
--no-browser: ??不在本機自動打開瀏覽器
&: ??在后臺運行這條命令褥实。這樣就可以接著去做其他的事情了呀狼。
5. 訪問 jupyter
在電腦上打開瀏覽器,輸入樹莓派的 ip 192.168.1.184 回車损离,就到了登錄界面了
然后輸入你之前設(shè)置的密碼哥艇,然后就進(jìn)去主界面了,新建了Python代碼文件之后僻澎,就可以開始寫代碼啦貌踏。
因為是樹莓派,所以會有點不一樣窟勃。測試運行pyecharts的時候祖乳,不管怎么樣都報錯
from PIL import Image\n ImportError: libopenjp2.so.7: cannot open shared object file: No such file
。
這是個很讓人頭疼的問題秉氧,一看是pillow報錯的眷昆,不管我重裝pillow還是重裝pyecharts都不行。百度了很多都沒找到辦法谬运。最后搜到個Python的包Copreus的頁面隙赁,發(fā)現(xiàn)了安裝這個包的辦法。
sudo apt install libopenjp2-7 libtiff5 build-essential python-dev
梆暖,順便我也把這個幫了我大忙的包安裝上了伞访。
大功告成!以后寫一點短小的代碼或者搞數(shù)據(jù)相關(guān)的代碼轰驳,就可以不用再打開pycharm啦~厚掷!并且手機上打開瀏覽器就可以寫 python 代碼了弟灼,感覺很方便~~~然后今天找了個大佬幫忙,做了個frp冒黑,把這個功能映射到了公網(wǎng)田绑,能打開了,不過運行代碼的反應(yīng)速度比較慢抡爹,不知道是不是經(jīng)過了幾層轉(zhuǎn)發(fā)的問題掩驱。
附上一個測試成功的示例代碼,一鍵運行是真的很方便冬竟。