1 安裝 Jupyter Notebook
Jupyter Notebook 簡(jiǎn)介
Jupyter Notebook 是一個(gè)開(kāi)源的 Web 應(yīng)用程序,可以用來(lái)創(chuàng)建和共享包含動(dòng)態(tài)代碼、方程式、可視化及解釋性文本的文檔。
其應(yīng)用于包括:數(shù)據(jù)整理與轉(zhuǎn)換,數(shù)值模擬,統(tǒng)計(jì)建模,機(jī)器學(xué)習(xí)等等。
詳情可以訪(fǎng)問(wèn)Jupyter官網(wǎng)
檢查 Python 環(huán)境
CentOS 7.2 中默認(rèn)集成了 Python 2.7,可以通過(guò)下面命令檢查 Python 版本:
python --version
安裝 pip
pip 是一個(gè) Python 包管理工具,我們使用 yum 命令來(lái)安裝該工具:
yum -y install python-pip
使用下面命令升級(jí) pip 到最新版本:
pip install --upgrade pip
升級(jí)也許會(huì)比較慢,如果超時(shí)再執(zhí)行一遍
安裝相關(guān)依賴(lài)
安裝 Jupyter 過(guò)程中還需要其他一些依賴(lài),我們使用以下命令安裝他們:
yum -y groupinstall "Development Tools"
yum -y install python-devel
配置虛擬環(huán)境
安裝 virtualenv
我們將為 Jupyter 創(chuàng)建一個(gè)獨(dú)立的虛擬環(huán)境,與系統(tǒng)自帶的 Python 隔離開(kāi)來(lái)。為此,先安裝 virtualenv 庫(kù):
pip install virtualenv
創(chuàng)建虛擬環(huán)境
創(chuàng)建一個(gè)專(zhuān)門(mén)的虛擬環(huán)境,并直接激活進(jìn)入該環(huán)境:
virtualenv venvsource
venv/bin/activate
使用 pip 安裝 Jupyter
我們使用 pip 命令安裝 Jupyter:
pip install jupyter
如果安裝慢的話(huà),可以使用豆瓣源,使用方法
python的支持包最好用豆瓣源來(lái)下載,不要問(wèn)為什么,就是快
配置 Jupyter Notebook
建立項(xiàng)目目錄
我們先為 Jupyter 相關(guān)文件準(zhǔn)備一個(gè)目錄:
mkdir /data/jupytercd /data/jupyter
再建立一個(gè)目錄作為 Jupyter 運(yùn)行的根目錄:
mkdir /data/jupyter/root
準(zhǔn)備密碼密文
由于我們將以需要密碼驗(yàn)證的模式啟動(dòng) Jupyter,所以我們要預(yù)先生成所需的密碼對(duì)應(yīng)的密文。
生成密文
使用下面的命令,創(chuàng)建一個(gè)密文的密碼:
python -c "import IPython;print IPython.lib.passwd()"
執(zhí)行后需要輸入并確認(rèn)密碼,然后程序會(huì)返回一個(gè) 'sha1:...'
的密文,我們接下來(lái)將會(huì)用到它。
修改配置
生成配置文件
我們使用 --generate-config
來(lái)參數(shù)生成默認(rèn)配置文件:
jupyter notebook --generate-config --allow-root
生成的配置文件在 /root/.jupyter/
目錄下,可以點(diǎn)此編輯配置。
修改配置
然后在配置文件最下方加入以下配置:
c.NotebookApp.allow_root = True
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
c.NotebookApp.password = u'剛才生成的密文(sha:...)'
c.ContentsManager.root_dir = '/data/jupyter/root'
其中:
c.NotebookApp.password
請(qǐng)將上一步中密文填入此項(xiàng),包括 sha: 部分,包括 sha: 部分,包括 sha: 部分!。
你也可以直接配置或使用 Nginx 將服務(wù)代理到 80 或 443 端口。
啟動(dòng) Jupyter Notebook
直接啟動(dòng)
使用以下指令啟動(dòng) Jupyter Notebook:
jupyter notebook
此時(shí),訪(fǎng)問(wèn) http://你的ip:8888 即可進(jìn)入 Jupyter 首頁(yè)。
創(chuàng)建 Notebook
進(jìn)入【首頁(yè)】
首先需要輸入前面步驟中設(shè)置的密碼。
然后點(diǎn)擊右側(cè)的【 new 】,選擇 Python2 新建一個(gè) notebook,這時(shí)跳轉(zhuǎn)至編輯界面。
現(xiàn)在我們可以看到 /data/jupyter/root/ 目錄中出現(xiàn)了一個(gè) Untitled.ipynb
文件,這就是我們剛剛新建的 Notebook 文件。我們建立的所有 Notebook
都將默認(rèn)以該類(lèi)型的文件格式保存。
后臺(tái)運(yùn)行
直接以
jupyter notebook
命令啟動(dòng) Jupyter 的方式在連接斷開(kāi)時(shí)將會(huì)中斷,所以我們需要讓 Jupyter 服務(wù)在后臺(tái)常駐。
先按下
Ctrl + C
并輸入 y
停止 Jupyter 服務(wù),然后執(zhí)行以下命令:
nohup jupyter notebook > /data/jupyter/jupyter.log 2>&1 &
該命令將使得 Jupyter 在后臺(tái)運(yùn)行,并將日志寫(xiě)在
/data/jupyter/jupyter.log
文件中。
準(zhǔn)備后續(xù)步驟的 Notebook
為了后面實(shí)驗(yàn)中實(shí)驗(yàn)室的步驟檢查器能夠更好的工作,此時(shí)我們使用以下命令預(yù)先創(chuàng)建幾份 ipynb 文件:
cd /data/jupyter/rootcp Untitled.ipynb first.ipynbcp Untitled.ipynb matplotlib.ipynbcp Untitled.ipynb tensorflow.ipynbrm -f Untitled.ipynb
使用 Jupyter Notebook
打開(kāi)你的first.ipynb文件頁(yè)面
http://本機(jī)IP:8888/notebooks/first.ipynb
Jupyter Notebook 的編輯界面主要由 工具欄
和 內(nèi)容編輯區(qū)
構(gòu)成。
下方編輯區(qū),由 Cell
組成。每個(gè) notebook 由多個(gè) Cell
構(gòu)成,每個(gè) Cell
都可以有不同的用途。
Code Cell
新建的 notebook 中包含一個(gè)代碼 Cell(Code Cell),以 [ ] 開(kāi)頭,在該類(lèi)型的 Cell 中,可以輸入任意代碼并執(zhí)行。如輸入:
1 + 1
然后按下 Shift + Enter 鍵, Cell 中代碼就會(huì)被執(zhí)行,光標(biāo)也會(huì)移動(dòng)至下個(gè)新 Cell 中。我們接著輸入:
print('Hello Jupyter')
再次按下 Shift + Enter ,可以看到這次沒(méi)有出現(xiàn) Out[..] 這樣的文字。這是因?yàn)槲覀冎淮蛴〕鰜?lái)了某些值,而沒(méi)有返回任何的值。
按下 Ctrl + S 保存,等待步驟檢查器確認(rèn)。
Heading Cell
新版本中已經(jīng)沒(méi)有獨(dú)立的 Heading Cell
,現(xiàn)在標(biāo)題被整合在 Markdown Cell
之中。
如果我們想在頂部添加一個(gè)的標(biāo)題。選中第一個(gè) Cell,然后點(diǎn)擊 Insert -> Insert Cell Above。
你會(huì)發(fā)現(xiàn),文檔頂部馬上就出現(xiàn)了一個(gè)新的 Cell。點(diǎn)擊在工具欄中 Cell 類(lèi)型(默認(rèn)為 Code),將其變成 Markdown。接著在 Cell 中寫(xiě)下:
My First Notebook
然后按下 Shift + Enter
鍵,便可以看到生成了一行一級(jí)標(biāo)題。
與 Markdown 語(yǔ)法相同,使用多個(gè)#
將改變標(biāo)題級(jí)別。
下一步
Markdown Cell
上一步中我們已經(jīng)嘗試了使用了 Markdown Cell
。在該 Cell 中,除標(biāo)題外其他語(yǔ)法同樣支持。比如,我們?cè)谝粋€(gè)新的 Cell 中插入以下文本:
| Name | Value |
|:----:|:-----:|
| A | 1 |
| B | 2 |
| C | 3 |
然后按下 Shift + Enter
,即可渲染出相應(yīng)內(nèi)容。
高級(jí)用法 - HTML
Markdown Cell
中同樣接受 HTML 代碼。這樣,你就可以實(shí)現(xiàn)更加豐富的樣式及結(jié)構(gòu)、添加圖片等等。
例如,如果想在 notebook 中添加 Jupyter 的 logo,并且添加 2px 的黑色邊框,放置在單元格左側(cè),可以這樣編寫(xiě):
然后按下 Shift + Enter
,即可渲染出圖片。
高級(jí)用法 - LaTex
Markdown Cell 還支持 LaTex 語(yǔ)法。在 Cell 中插入以下文本:
$$int_0^{+infty} x^2 dx$$
同樣按下 Shift + Enter
,即可渲染出公式。