搭建Jupyter虾标、JupyterLab服務器

搭建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

如果沒有換源,先進行換源,下載速度會快很多

cat > ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

npmyarn也可以換源竟闪,更簡單,自行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

安裝yarnnodejs

配置倉庫

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,這個版本的nodejsjupyterlab支持比較友好也殖。

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
img
img
img

img
](http://image.rexking6.top/img/clip1545289922.png)

JupyterLab drawio(processon圖)

Installation

jupyter labextension install jupyterlab-drawio
img

注,圖片來自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)入下一單元

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宏胯,一起剝皮案震驚了整個濱河市羽嫡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌肩袍,老刑警劉巖杭棵,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異了牛,居然都是意外死亡颜屠,警方通過查閱死者的電腦和手機辰妙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門鹰祸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人密浑,你說我怎么就攤上這事蛙婴。” “怎么了尔破?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵街图,是天一觀的道長。 經(jīng)常有香客問我懒构,道長餐济,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任胆剧,我火速辦了婚禮絮姆,結果婚禮上,老公的妹妹穿的比我還像新娘秩霍。我一直安慰自己篙悯,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布铃绒。 她就那樣靜靜地躺著鸽照,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颠悬。 梳的紋絲不亂的頭發(fā)上矮燎,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天定血,我揣著相機與錄音,去河邊找鬼诞外。 笑死糠悼,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的浅乔。 我是一名探鬼主播倔喂,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼靖苇!你這毒婦竟也來了席噩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤贤壁,失蹤者是張志新(化名)和其女友劉穎悼枢,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脾拆,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡馒索,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了名船。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绰上。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖渠驼,靈堂內(nèi)的尸體忽然破棺而出蜈块,到底是詐尸還是另有隱情,我是刑警寧澤迷扇,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布百揭,位于F島的核電站匈织,受9級特大地震影響嫌褪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纵朋,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一厨内、第九天 我趴在偏房一處隱蔽的房頂上張望祈秕。 院中可真熱鬧,春花似錦隘庄、人聲如沸踢步。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽获印。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兼丰,已是汗流浹背玻孟。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鳍征,地道東北人黍翎。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像艳丛,于是被迫代替她去往敵國和親匣掸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容