Python安装Jupyter Notebook配置使用教程
原文見:https://blog.csdn.net/qq_27825451/article/details/84427269
一、什么是jupyter
1、簡(jiǎn)介:
jupyter notebook是一種 Web 應(yīng)用,能讓用戶將說明文本、數(shù)學(xué)方程、代碼和可視化內(nèi)容全部組合到一個(gè)易于共享的文檔中。它可以直接在代碼旁寫出敘述性文檔,而不是另外編寫單獨(dú)的文檔。也就是它可以能將代碼、文檔等這一切集中到一處,讓用戶一目了然。
Jupyter這個(gè)名字是它要服務(wù)的三種語言的縮寫:Julia,PYThon和R,這個(gè)名字與“木星(jupiter)”諧音。Jupyter Notebook 已迅速成為數(shù)據(jù)分析,機(jī)器學(xué)習(xí)的必備工具。因?yàn)樗梢宰寯?shù)據(jù)分析師集中精力向用戶解釋整個(gè)分析過程。我們可以通過Jupyter notebook寫出了我們的學(xué)習(xí)筆記。但是jupyter遠(yuǎn)遠(yuǎn)不止支持上面的三種語言,目前能夠使用的語言他基本上都能支持,包括C、C++、C#,java、Go等等。
jupyter notebook和我們前面所講的兩篇系列文章ipython其實(shí)都是來自同一個(gè)產(chǎn)品族,它的前身叫做ipython notebook,至于后面為什么更名這不得而知,這也就是為什么很多文章總是默認(rèn)將ipython就說成是ipython notebook的原因了。但是既然已經(jīng)更名了,我們還是區(qū)別對(duì)待ipython和jupyter notebook。
2、安裝與打開
安裝這里就不說了,使用過anaconda的人都清楚,在安裝anaconda的時(shí)候會(huì)一起打包安裝,如果想要自己安裝,可以通過pip或者是conda安裝,
怎么打開也很簡(jiǎn)單,可以直接在anaconda的菜單里面打開jupyter notebook,也可以通過命令行,輸入jupyter notebook或者是jupyter-notebook都可以。
我們說了,jupyter notebook會(huì)在瀏覽器中中打開,是一種Web應(yīng)用,故而有web路徑和端口號(hào)了,我的打開之后,在瀏覽器的地址欄會(huì)顯示如下:
http://localhost:8888/tree
當(dāng)一次打開多個(gè)jupyter notebook的時(shí)候,端口號(hào)會(huì)依次遞增8889,8890依次遞增。
3、jupyter的作用
前面說了一大堆,也不清楚jupyter到底有啥好的啊,到底有一些什么功能呢?
在介紹 Jupyter Notebook 的功能之前,讓我們先來看一個(gè)概念:文學(xué)編程 ( Literate programming ),這是由 Donald Knuth 提出的編程方法。傳統(tǒng)的結(jié)構(gòu)化編程,人們需要按計(jì)算機(jī)的邏輯順序來編寫代碼;與此相反,文學(xué)編程則可以讓人們按照自己的思維邏輯來開發(fā)程序。
簡(jiǎn)單來說,文學(xué)編程的讀者不是機(jī)器,而是人。 我們從寫出讓機(jī)器讀懂的代碼,過渡到向人們解說如何讓機(jī)器實(shí)現(xiàn)我們的想法,其中除了代碼,更多的是敘述性的文字、圖表等內(nèi)容。這么一看,這不正是數(shù)據(jù)分析人員所需要的編碼風(fēng)格么?不僅要當(dāng)好一個(gè)程序員,還得當(dāng)好一個(gè)作家。那么 Jupyter Notebook 就是不可或缺的一款集編程和寫作于一體的效率工具。
以下列舉了 Jupyter Notebook 的眾多優(yōu)點(diǎn):
(1)極其適合數(shù)據(jù)分析,想象一下如下混亂的場(chǎng)景:你在終端中運(yùn)行程序,可視化結(jié)果卻顯示在另一個(gè)窗口中,包含函數(shù)和類的腳本存在其他文檔中,更可惡的是你還需另外寫一份說明文檔來解釋程序如何執(zhí)行以及結(jié)果如何。此時(shí) Jupyter Notebook 從天而降,將所有內(nèi)容收歸一處,你是不是頓覺靈臺(tái)清明,思路更加清晰了呢?
(2)支持多語言,也許你習(xí)慣使用 R 語言來做數(shù)據(jù)分析,或者是想用學(xué)術(shù)界常用的 MATLAB 和 Mathematica,這些都不成問題,只要安裝相對(duì)應(yīng)的核(kernel)即可。這里列出了 Jupyter 支持的所有語言,供您參考。
分享便捷,支持以網(wǎng)頁的形式分享,GitHub 中天然支持 Notebook 展示,也可以通過 nbviewer 分享你的文檔。當(dāng)然也支持導(dǎo)出成 HTML、Markdown 、PDF 等多種格式的文檔。
(3)遠(yuǎn)程運(yùn)行,在任何地點(diǎn)都可以通過網(wǎng)絡(luò)鏈接遠(yuǎn)程服務(wù)器來實(shí)現(xiàn)運(yùn)算
(4)交互式展現(xiàn),不僅可以輸出圖片、視頻、數(shù)學(xué)公式,甚至可以呈現(xiàn)一些互動(dòng)的可視化內(nèi)容,比如可以縮放的地圖或者是可以旋轉(zhuǎn)的三維模型。這就需要交互式插件(Interactive widgets)來支持,更多內(nèi)容請(qǐng)參考這里。
常見的一些jupyter高級(jí)應(yīng)用如:
數(shù)學(xué)公式編輯
幻燈片制作
魔術(shù)關(guān)鍵字
二、jupyter notebook的簡(jiǎn)單使用
1、常用的jupyter notebook一些命令如下:指的是在cmd中使用jupyter命令
(1)查看jupyter notebook的相關(guān)幫助
jupyter-notebook --help
jupyter-notebook --help-all (會(huì)顯示更詳細(xì)的信息)
jupyter-notebook -h (只有一個(gè)橫杠噢,熟悉命令使用的小伙伴都知道)
(2)jupyter notebook常用的子命令——subcommand
list :列出當(dāng)前的所打開的jupyter notebook的一些信息,比如:
??? (base) C:\Users\lenovo>jupyter-notebook list
??? Currently running servers:
??? http://localhost:8888/?token=5751bd2f4a5675c59c15c9cdfaa7ecbe431ba68b7d23a3c7 :: C:\Users\lenovo
??? http://localhost:8889/?token=a9f1a6a33a5b0fa93f51552aecbb99a3dec321fdd5e0e74a :: C:\Users\lenovo
?這里我打開了兩個(gè)jupyter notebook,一個(gè)端口為8888,一個(gè)為8889
stop:關(guān)閉所給定的端口號(hào)的那一個(gè)jupyter
??? (base) C:\Users\lenovo>jupyter-notebook stop 8888
??? Shutting down server on port 8888 ...
??? ?
??? (base) C:\Users\lenovo>jupyter notebook list
??? Currently running servers:
??? http://localhost:8889/?token=a9f1a6a33a5b0fa93f51552aecbb99a3dec321fdd5e0e74a :: C:\Users\lenovo
關(guān)閉了8888,只剩下一個(gè)8889了。
password :給某一個(gè)打開的jupyter notebook 服務(wù)設(shè)置密碼,后面直接輸入所要添加的密碼即可。
(3)jupyter notebook命令的常用選項(xiàng),下面進(jìn)介紹一些常用的,想要知道所有的詳細(xì)使用可以使用
jupyter notebook --help-all 查看jupyter命令的詳細(xì)信息:
?
--generate-config? 產(chǎn)生默認(rèn)的配置文件()這個(gè)是重點(diǎn),后面會(huì)講到)
--no-browser 啟動(dòng)jupyter notebook之后不打開瀏覽器(默認(rèn)情況下是會(huì)打開一個(gè)瀏覽器界面的)
--pylab 同前面講解ipython的時(shí)候很類似,在jupyter notebook里面集成,也可以在jupyter notebook里面使用
??????????? %pylab 或者是%matplotlib魔術(shù)命令(這是最常用的,后面也會(huì)講到)
--config=<Unicode>? 制定一個(gè)完全路徑的配置文件名稱,關(guān)于配置文件后面會(huì)詳解,默認(rèn)是default,即系統(tǒng)指定的默認(rèn)配置文件
--ip=<Unicode>? 默認(rèn)是: 'localhost',從前面的現(xiàn)實(shí)中也可以看出來,表示的是notebook服務(wù)器會(huì)監(jiān)聽的IP地址,我們也可以手動(dòng)指定
--port=<Int>? 指定jupyter notebook打開瀏覽器的端口號(hào),默認(rèn)是: 8888,也可以手動(dòng)輸入
--notebook-dir=<Unicode> 默認(rèn)使用默認(rèn)的目錄,表示的是notebook和kernels的目錄
--browser=<Unicode> 還可以指定某一個(gè)特定的瀏覽器打開,默認(rèn)使用系統(tǒng)默認(rèn)的瀏覽器打開,是可以自己選定瀏覽器的。
?
2、jupyter的簡(jiǎn)單使用
當(dāng)我們打開jupyter notebook(不管用什么樣的方式打開,使用菜單打開或者是命令行打開是一樣的)會(huì)在默認(rèn)的瀏覽器中看到這樣的界面:
但是每一臺(tái)不同的電腦打開之后的界面是不同的,仔細(xì)觀察就會(huì)發(fā)現(xiàn),這里面現(xiàn)實(shí)的一些文件夾就是電腦用戶目錄下面的文件夾,這是為什么呢?那是因?yàn)閖upyter notebook在啟動(dòng)的時(shí)候總是有一個(gè)默認(rèn)的目錄,一般情況下,使用戶的目錄。
那怎么查看默認(rèn)目錄,或者是我想要修改默認(rèn)目錄該怎么做呢?
實(shí)際上,jupyter的一些默認(rèn)設(shè)置都設(shè)置在一個(gè)默認(rèn)的配置文件中,我們可以查看并且修改配置文件中的內(nèi)容
(1)查看配置文件
在cmd中使用如下命令:jupyter-notebook --generate-config
??? (base) C:\Users\lenovo>jupyter-notebook --generate-config
??? Writing default config to: C:\Users\lenovo\.jupyter\jupyter_notebook_config.py
可見我的默認(rèn)配置文件在:C:\Users\lenovo\.jupyter\jupyter_notebook_config.py中,現(xiàn)在我們查看配置文件的信息。得到如下:
打開之后發(fā)現(xiàn),這本質(zhì)上應(yīng)該是一個(gè)python的 py文件,但是實(shí)際上全部都是用井號(hào)#開頭的,這不是意味著這都是一些注釋嗎?可以這么說,但實(shí)際上觀察會(huì)發(fā)現(xiàn),有的有兩個(gè)井號(hào)開頭 ##,這才是注釋文本,而那些以一個(gè)井號(hào)#開頭的實(shí)際上就是默認(rèn)的配置信息,也就是我們要修改的。當(dāng)然這個(gè)文件很長(zhǎng),我不會(huì)一個(gè)一個(gè)講解每一個(gè)配置信息是什么意思,我指將如何自定義默認(rèn)目錄。
我們通過編輯器,搜索directory定位到如下位置:
??? ## The directory to use for notebooks and kernels.
??? #c.NotebookApp.notebook_dir = ''
這句話就是設(shè)置jupyter的目錄的,可見默認(rèn)值是沒有的,我們現(xiàn)在比如要使它指定到我們自己的目錄,比如我要讓它指定到F盤中的myjupyter文件夾,則修改如下:
??? ## The directory to use for notebooks and kernels.
??? c.NotebookApp.notebook_dir = 'F:\myjupyter'
保存修改的文件并關(guān)閉!然后再打開,發(fā)現(xiàn)如下信息,從下面的信息可以看見這樣一句話:
Serving notebooks from local directory: F:\myjupyter ?
這就說明修改成功。
??? (base) C:\Users\lenovo>jupyter-notebook
??? [I 14:17:57.432 NotebookApp] JupyterLab beta preview extension loaded from D:\ProgramData\Anaconda3\lib\site-packages\jupyterlab
??? [I 14:17:57.432 NotebookApp] JupyterLab application directory is D:\ProgramData\Anaconda3\share\jupyter\lab
??? [I 14:18:00.231 NotebookApp] Serving notebooks from local directory: F:\myjupyter
??? [I 14:18:00.232 NotebookApp] 0 active kernels
??? [I 14:18:00.232 NotebookApp] The Jupyter Notebook is running at:
??? [I 14:18:00.232 NotebookApp] http://localhost:8888/?token=ad2aa0097b0687bbd8b5b11909101533630e781e7c28753b
??? [I 14:18:00.232 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
??? [C 14:18:00.234 NotebookApp]
??????? Copy/paste this URL into your browser when you connect for the first time,
??????? to login with a token:
??????????? http://localhost:8888/?token=ad2aa0097b0687bbd8b5b11909101533630e781e7c28753b&token=ad2aa0097b0687bbd8b5b11909101533630e781e7c28753b
??? [I 14:18:00.786 NotebookApp] Accepting one-time-token-authenticated connection from ::1
注意事項(xiàng):
第一、文件夾必須先創(chuàng)建好,比如這里F盤下面的myjupyter文件夾要先創(chuàng)建好;不然會(huì)jupyter初始化時(shí)會(huì)找不到目錄
第二、要取消注釋,c前面的#要去掉(我還不知道這是為什么?哪位知道望告知!)
第三、要注意文件名不可以是數(shù)字
除此之外,上面的這些操作,推薦全部使用anaconda自帶的Anaconda Promp進(jìn)行操作,因?yàn)樗峁┝朔浅:玫沫h(huán)境管理功能,而在系統(tǒng)自身的cmd中操作,可能因?yàn)榄h(huán)境變量設(shè)置等相關(guān)的一些原因,不成功。比如我在多個(gè)環(huán)境中都安裝了jupyter,但是cmd中環(huán)境變量所指向的那個(gè)是A,我們修改的可能是B的配置文件,這樣通過cmd啟動(dòng)jupyter發(fā)現(xiàn)依然未改變。
現(xiàn)在打開,則發(fā)現(xiàn)web界面變成了如下:
三、jupyter運(yùn)行環(huán)境的配置——一python運(yùn)行環(huán)境為例
jupyter notebook本質(zhì)上是一個(gè)web應(yīng)用程序,我們可以在上面書寫代碼,但是代碼本身的運(yùn)行環(huán)境是需要自己安裝的,沒有運(yùn)行環(huán)境,即使是在jupyter notebook里面書寫的代碼怡然沒有辦法運(yùn)行。因?yàn)榇a本身,web應(yīng)用程序是不認(rèn)識(shí)的。
幸運(yùn)的是,在使用anaconda安裝的時(shí)候,會(huì)默認(rèn)將安裝jupyter,而且會(huì)安裝一個(gè)Python的運(yùn)行環(huán)境,所以打開jupyter的時(shí)候,可以直接看見這個(gè)運(yùn)行環(huán)境,在jupyter里面稱之為內(nèi)核kernel,如下所示:
在右上角點(diǎn)擊下拉按鈕,會(huì)得到如圖所示的結(jié)果,
第一個(gè)python3 ,表示的就是默認(rèn)的python3 kernel,它是隨著anaconda一起安裝的;
Text File ,表示的是新建一個(gè)文本文件
Folder ,表示的是新建一個(gè)文件夾
Terminal ,表示的是在瀏覽器中新建一個(gè)用戶終端,即類似于cmd的shell。
但是,這是遠(yuǎn)遠(yuǎn)不夠的,因?yàn)槲也豢赡芩械某绦蚨际鞘褂眠@一個(gè)python kernel,使用過TensorFlow的人都知道如何創(chuàng)建一個(gè)新的運(yùn)行環(huán)境,打包TensorFlow所依賴的各種包。本文以python為例,我還有另外兩個(gè)環(huán)境,一個(gè)是TensorFlow,一個(gè)是pytorch,還有一個(gè)是,mxnet。他們都是使用conda創(chuàng)建的python運(yùn)行環(huán)境。其實(shí)就一句話:
conda create -n tensorflow python=3.6
conda創(chuàng)建運(yùn)行環(huán)境的方法這里就不詳細(xì)說明了,可以參閱相關(guān)文章。注意:因?yàn)閍naconda的服務(wù)器在國(guó)外,上面的執(zhí)行速度實(shí)在是太慢,甚至等了半天,然后連接失敗,所以,我們可以使用清華大學(xué)的鏡像進(jìn)行下載,在使用上面執(zhí)行命令之前,添加一句:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
再使用:conda create -n tensorflow python=3.6
這會(huì)快非常多!!!
注意:
TUNA 還提供了 Anaconda 倉庫的鏡像,運(yùn)行以下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
即可添加 Anaconda Python 免費(fèi)倉庫。
直接粘貼復(fù)制以上代碼即可。另外,要一行一行運(yùn)行,并且每一行運(yùn)行完沒有任何結(jié)果,直接運(yùn)行下一行即可。
三行代碼運(yùn)行完,可以運(yùn)行 conda install numpy 測(cè)試一下吧。
1、原始的方法解決多個(gè)Python運(yùn)行環(huán)境問題
就是走在每一個(gè)python的運(yùn)行環(huán)境里面都使用conda install notebook 安裝一個(gè)與之對(duì)應(yīng)的notebook,然后我在做開發(fā)的時(shí)候,需要用什么環(huán)境,我就在每一個(gè)Python環(huán)境中的script文件夾下面打開對(duì)應(yīng)的哪個(gè)jupyter notebook,這當(dāng)然沒問題。但這樣做不是很高級(jí),我需要安裝很多次,而且每次在使用jupyter notebook的時(shí)候都只能使用一個(gè)環(huán)境,局限性很大。
2、更高級(jí)的辦法
現(xiàn)在,比如我已經(jīng)在anaconda里面創(chuàng)建了一個(gè)名為tensorflow的環(huán)境,但是,怎么把它添加到j(luò)upyter里面呢?
(1)方法一:
首先在anaconda prompt里面激活我們需要的環(huán)境,然后執(zhí)行下面一個(gè)命令:
(base) C:\Users\lenovo>activate python27
(python27) C:\Users\lenovo>python -m ipykernel install --name python27
Installed kernelspec python27 in C:\ProgramData\jupyter\kernels\python27
和
(base) C:\Users\lenovo>activate tensorflow
(tensorflow) C:\Users\lenovo>python -m ipykernel install --name tensorflow
Installed kernelspec tensorflow in C:\ProgramData\jupyter\kernels\tensorflow
總結(jié):兩步走,
第一步:激活相應(yīng)的環(huán)境
第二部分:執(zhí)行命令 python -m ipykernel install --name 環(huán)境名稱
現(xiàn)在打開我們的jupyter notebook,查看python環(huán)境如下:
補(bǔ)充:也有人用下面的方法:
先激活某一個(gè)Python環(huán)境:然后再執(zhí)行下面兩個(gè)語句:
conda install -n 環(huán)境名稱 ipykernel
python -m ipykernel install --user ?
注意:上面這種方式都是可以的,但問題是還是需要針對(duì)每一個(gè)環(huán)境安裝一次ipykernel,而且有時(shí)候不知怎么回事,總是會(huì)遇見一些亂七八糟的錯(cuò)誤,我還沒搞清楚是為什么,如果誰知道,望告知。
(2) 方法二——一步到位的方法
在我創(chuàng)建完我需要的運(yùn)行環(huán)境之后,然后只需要在base運(yùn)行環(huán)境中執(zhí)行一個(gè)命令即可。
(base) C:\Users\lenovo>conda install nb_conda
將會(huì)將所有的kernel全部添加進(jìn)去,這種方法是最快的,而且最不容易出錯(cuò),推薦使用。
(3)補(bǔ)充方法——綜合前面兩者
(1)一步到位:
(base) C:\Users\lenovo>conda install nb_conda
(base) C:\Users\lenovo>conda install nb_conda_kernels
兩種方法均可以
(2)分步完成:
第一步:激活某一個(gè)環(huán)境activate mxnet
第二步:在環(huán)境中安裝ipykernel:pip install ipykernel
第三步:再執(zhí)行命令:
???????? python -m ipykernel install --user --name mxnet --display-name mymxnet
后面的藍(lán)色部分可以省略。第一個(gè)mxnet指的是我激活的那一個(gè)環(huán)境名,這里是mxnet;第二個(gè)mymxnet是我要在jupyter里面顯示的內(nèi)核名稱,是自己自定義的,我定義為mymxnet。
?
全文總結(jié):關(guān)于ipython系列的文章到這里就結(jié)束了,三篇文章,從ipython到j(luò)upyter notebook,希望對(duì)于一些有需要的小伙伴有所幫助,本來還打算寫一篇關(guān)于jupyter notebook的使用的,但是這種教程網(wǎng)上實(shí)在太多了,就不在這里畫蛇添足了。
————————————————
版權(quán)聲明:本文為CSDN博主「LoveMIss-Y」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_27825451/article/details/84427269
總結(jié)
以上是生活随笔為你收集整理的Python安装Jupyter Notebook配置使用教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [HAOI2008]糖果传递 结论题
- 下一篇: 机器学习——python实现SVM模型w