搭建Jupyter服務器
1.配置好Python環(huán)境及安裝pip
2.安裝jupyter:
pip3 install jupyter
(此處使用的是python3)
3.生成配置文件
jupyter notebook --generate-config
4.生成密鑰:
終端輸入$ ipython
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
#此時會讓你兩次輸入密碼徒河,然后就會生成秘鑰
#************
5.修改配置文件vim ~/.jupyter/jupyter_notebook_config.py
c=get_config()
c.IPKernelApp.pylab ="inline"
c.NotebookApp.ip='*' # 設置所有ip皆可訪問
c.NotebookApp.password = 'sha1:x' # 剛生成的密文
c.NotebookApp.open_browser = False # 禁止自動打開瀏覽器
c.NotebookApp.port = 9999 # 指定運行端口
c.NotebookApp.notebook_dir = '/home/apollo3d/tf/jupyter_home' # 指定Jupyter的工作目錄
拓展:云服務器搭建神器JupyterLab(轉(zhuǎn))
JupyterLab
是一個交互式的開發(fā)環(huán)境娇妓,其用于應對包含著notebook
伐庭、代碼以及數(shù)據(jù)的工作場景用爪。
1原押、前言
如果說vim是編輯器之神,那么JupyterLab就是筆記本之神偎血。
從2017年開始我注意到這一神奇的IDE筆記本诸衔,第一眼見到它,就覺得它真的太強大了颇玷,作為一個交互式的Python開發(fā)工具笨农,其實也不算開發(fā)工具,準確的來說帖渠,它是一個演示代碼的科學數(shù)據(jù)工具谒亦,支持markdown預覽,支持Draw擴展空郊,支持豐富的文件格式和多種開發(fā)語言份招,擁有眾多插件諸于GitHub, Google-Dirve狞甚, Git和TOC锁摔,更重要的是,它是把瀏覽器當作開發(fā)工具入愧,十分有創(chuàng)意鄙漏。JupyterLab的開發(fā)者眾多嗤谚,GitHub上面的isuue也十分活躍,眾多的大牛開發(fā)者也紛紛加入到JupyterLab的陣營怔蚌,為JupyterLab的發(fā)展作貢獻巩步,JupyterLab得到迅速發(fā)展。
好的工具當然是要好好利用了桦踊,回歸正題椅野,怎樣通過云服務器搭建一個可遠程使用的JupyterLab?
2、添加ppa源
root@iZwz9huxtbd86xp91s3j16Z:~# sudo add-apt-repository ppa:chronitis/jupyter
$ sudo: add-apt-repository: command not found
# 出現(xiàn)這種情況,可以如下解決
# $ sudo apt-get install software-properties-common
3籍胯、配置python
$ sudo apt-get install python-pip python-dev build-essential
$ sudo pip install --upgrade pip #
$ sudo pip install --upgrade virtualenv #安裝虛擬環(huán)境
# 升級pip
$ sudo pip3 install --upgrade pip
$ sudo pip2 install --upgrade pip
如果沒有換源,先進行換源,下載速度會快很多
- 阿里云 http://mirrors.aliyun.com/pypi/simple/
- 中國科技大學 https://pypi.mirrors.ustc.edu.cn/simple/
- 豆瓣(douban) http://pypi.douban.com/simple/
- 清華大學 https://pypi.tuna.tsinghua.edu.cn/simple/
- 中國科學技術大學 http://pypi.mirrors.ustc.edu.cn/simple/
cat > ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
npm
和yarn
也可以換源竟闪,更簡單,自行google
杖狼。
pip
國內(nèi)的一些鏡像包,換源之后出現(xiàn)python2
版本過低的情況導致以前的包下載不了炼蛤,那就直接將文件夾~/.pip/pip.conf
刪除就可以恢復原來的源。
pip指向問題
有時候會出現(xiàn)pip,pip2,pip3都TM指向python2蝶涩,這個之后就需要改一下這這三個文件理朋。
編輯這三個文件,將第一行注釋分別改為python\python2\python3
~ $which pip
/usr/local/bin/pip
21:36 alien@alien-Inspiron-3443:
~ $which pip2
/usr/local/bin/pip2
21:36 alien@alien-Inspiron-3443:
~ $which pip3
/usr/local/bin/pip3
安裝yarn
和nodejs
配置倉庫
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
安裝yarn
sudo apt-get update
sudo apt-get install yarn
# 如果這邊安裝后,報錯NameError: name 'CoreConfig' is not defined,那么需要更新nodejs版本
注意這里yarn
自動安裝了nodejs
绿聘,不過版本太低嗽上,安裝jupyterlab
的時候會出問題,而且使用n
或者nvm
安裝的nodejs
也有問題熄攘,總之nodejs
要按照下面這種方式就沒事兽愤,這個是官方的bug
,官方issue
也提到過挪圾,但是目前還未解決浅萧。
如果版本過低,安裝插件、或是jupyter lab build
發(fā)生NameError: name 'CoreConfig' is not defined
錯誤,則可能是nodejs版本過低導致.我出現(xiàn)這個Bug后找了提了issue也沒解決,后來突然想起了這邊提到的nodejs版本問題,于是更新后解決..nodejs更新方式見附錄
安裝nodejs
創(chuàng)建一個新文件洛史,輸入兩行deb
惯殊,結束之后Ctrl+C
:
cat > /etc/apt/sources.list.d/nodesource.list
deb https://deb.nodesource.com/node_6.x xenial main
deb-src https://deb.nodesource.com/node_6.x xenial main
導入公匙并安裝nodejs
,這個版本的nodejs
對jupyterlab
支持比較友好也殖。
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
sudo apt-get update
apt-cache policy nodejs
sudo apt-get install nodejs
nodejs --version
?```shell
#### 安裝`ipython,matplotlib,scipy,pandas,numpy`
最好`python2`和`python3`都安裝土思。
## 安裝`JupyterLab`及其配置
> 配置同上文Jupyter配置
?```shell
# 安裝
sudo pip3 install jupyterlab
# 生成密碼
jupyter-notebook password
創(chuàng)建哈希密碼
from notebook.auth import passwd
passwd()
# 輸入你自己設置登錄JupyterLab界面的密碼,
# 然后就會生產(chǎn)下面這樣的密碼忆嗜,將它記下來己儒,待會兒用
'sha1:b92f3fb7d848:a5d40ab2e26aa3b296ae1faa17aa34d3df351704'
修改JupyterLab
配置文件
先生成一個配置文件,記下輸出的配置文件地址
jupyter lab --generate-config
->
c.NotebookApp.allow_root = True #允許以root方式運行jupyterlab
c.NotebookApp.ip = '0.0.0.0' #允許任意ip段訪問
c.NotebookApp.notebook_dir = u'/root/JupyterLab' # 設置jupyterlab頁面的根目錄
c.NotebookApp.open_browser = False#默認運行時不啟動瀏覽器捆毫,因為服務器默認只有終端
c.NotebookApp.password = u'sha1:b92f3fb7d848:a5d40ab2e26aa3b296ae1faa17aa34d3df351704'#設置之前生產(chǎn)的哈希密碼
c.NotebookApp.port = 8080#設置訪問端口
到此闪湾,JupyterLab
已經(jīng)安裝成功了。
jupyter-lab --version
0.33.12
jupyter lab build
jupyter lab build
時間有點久绩卤,如果沒報錯就成功了
JupyterLab
擴展安裝
jupyter labextension list # 查看已經(jīng)安裝的擴展及其狀態(tài):
jupyter labextension install @mflevine/jupyterlab_html # 比如安裝一個擴展jupyterlab_html途样,支持html預覽:
jupyter labextension uninstall @mflevine/jupyterlab_html #卸載擴展:
jupyter labextension update --all #更新所有擴展:
# 安裝一個生成目錄的插件
jupyter labextension install @jupyterlab/toc
還有功能
- 支持做圖
markdown
- 多標簽
- 內(nèi)部打開網(wǎng)頁
latex
快捷鍵
編輯模式命令
- 執(zhí)行當前cell江醇,執(zhí)行后不自動調(diào)轉(zhuǎn)到下一個cell:Ctrl-Enter
- 使當前的cell進入編輯模式:Enter
- 退出當前cell的編輯模式:Esc
命令模式:
- 刪除當前的cell:雙D
- 為當前的cell加入line number:單L
- 將當前的cell轉(zhuǎn)化為具有一級標題的maskdown:單1
- 將當前的cell轉(zhuǎn)化為具有二級標題的maskdown:單2
- 將當前的cell轉(zhuǎn)化為具有三級標題的maskdown:單3
- 撤銷對某個cell的刪除:z
- 瀏覽器的各個Tab之間切換:Up和Dn
附錄
nodejs更新
# 查看更新前的版本
$ node -v
v4.2.1
$ sudo npm cache clean -f
$ sudo npm install -g n
$ sudo n stable
# 軟鏈接,VERSION改成新的版本(刪了后按TAB鍵)
$ sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/nodejs
# 查看是否更新成功
$ node -v
v10.16.3
安裝內(nèi)核
安裝Python內(nèi)核
如果需要python2和python3同時存在的話
$ sudo pip2 install ipykernel
$ sudo pip3 install ipykernel
# 查看已經(jīng)安裝的內(nèi)核
jupyter kernelspec list
# 刪除你不需要的內(nèi)核
$ jupyter kernelspec remove <kernel_name>
/root/JupyterLab
安裝ijavascript
sudo add-apt-repository ppa:chronitis/jupyter
sudo apt-get update
sudo apt-get install ijavascript
# ihaskell、ijulia何暇、irkernel陶夜、iruby
# https://github.com/jupyter/jupyter/wiki/Jupyter-kernels
插件安裝
jupyterlab-toc(目錄功能)
Installation
jupyter labextension install @jupyterlab/toc
Jupyterlab-Tensorboard
Installation
$ jupyter labextension install jupyterlab_tensorboard
JupyterLab drawio(processon圖)
Installation
jupyter labextension install jupyterlab-drawio
注,圖片來自RexKing6's Note
variableinspector
像matlab一樣查看工作區(qū)變量
jupyter labextension install @lckr/jupyterlab_variableinspector
go_to_definition插件
在lab中按alt+ 點擊變量名 or 函數(shù)名,可以跳轉(zhuǎn)到其對應的最初定義的地方(注意看閃爍光標的位置變化)裆站。
[圖片上傳失敗...(image-a3cb35-1570443897687)]
快捷鍵
Up : 選中上方單元
K : 選中上方單元
Down : 選中下方單元
J : 選中下方單元
Shift-K : 擴大選中上方單元
Shift-J : 擴大選中下方單元
A : 在上方插入新單元
B : 在下方插入新單元
X : 剪切選中的單元
C : 復制選中的單元
Shift-V : 粘貼到上方單元
V : 粘貼到下方單元
Z : 恢復刪除的最后一個單元
D,D : 刪除選中的單元
Shift-M : 合并選中的單元
I,I : 中斷Notebook內(nèi)核0,0
0,0 :重啟Notebook內(nèi)核
Tab : 代碼補全或縮進
Shift-Tab : 提示
Ctrl-] : 縮進
Ctrl-[ : 解除縮進
Ctrl-A : 全選
Ctrl-Z : 復原
Ctrl-Shift-Z : 再做
Ctrl-Y : 再做
Ctrl-Home : 跳到單元開頭
Ctrl-Up : 跳到單元開頭
Ctrl-End : 跳到單元末尾
Ctrl-Down : 跳到單元末尾
Ctrl-Left : 跳到左邊一個字首
Ctrl-Right : 跳到右邊一個字首
Ctrl-Backspace : 刪除前面一個字
Ctrl-Delete : 刪除后面一個字
Esc : 進入命令模式
Ctrl-M : 進入命令模式
Shift-Enter : 運行本單元条辟,選中下一單元
Ctrl-Enter : 運行本單元
Alt-Enter : 運行本單元,在下面插入一單元
Ctrl-Shift-- : 分割單元
Ctrl-Shift-Subtract : 分割單元
Ctrl-S : 文件存盤
Shift : 忽略
Up : 光標上移或轉(zhuǎn)入上一單元
Down :光標下移或轉(zhuǎn)入下一單元