
jupyter筆記本是一個Web應用程式,允許你建立和共享代碼,方程,可視化和說明性文本文檔。用途包括:資料清洗和轉換,數值模拟,統計模組化,機器學習等。
一、安裝jupyter
2、安裝過程
注:我剛開始安裝的時候,怕被坑了,找了N多文檔,結果都就在安裝過程中出現各種問題,有解決依賴,無法儲存的,無法補全的,不能用别名的。。。我以為這樣就可以搞了,but 我竟然成功了,安裝過程在一片祥和的氛圍下最絡達成。
提示:安裝前安裝開發包組Development tools,更新系統python版本,官方要求python2.6或3.2,但是jupyter 要Python 2.7 or >= 3.3,ipython當然是最新版本的,剩下的就是安裝了,一條指令搞定
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<code>yum instal -y python-pip </code><code>#如果沒有pip的話</code>
<code>#pip install virtualenv -y</code>
<code>[root@localhost python_object]</code><code># virtualenv --no-site-package ipython_notebook</code>
<code>New python executable </code><code>in</code> <code>ipython_notebook</code><code>/bin/python</code>
<code>Installing setuptools, pip, wheel...</code><code>done</code><code>.</code>
<code>[root@localhost python_object]</code><code># ls</code>
<code>Exect_number.py firstfork.py ipython_notebook Prodicer.py virtual_DJ</code>
<code>[root@localhost python_object]</code><code># source ipython_notebook/bin/activate</code>
<code>(ipython_notebook)[root@localhost python_object]</code><code># </code>
<code>(ipython_notebook)[root@localhost python_object]</code><code># pip install jupyter</code>
<code>Collecting jupyter</code>
<code>/workspace/python_object/ipython_notebook/lib/python2</code><code>.7</code><code>/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_</code><code>.py:90: InsecurePlatformWarning: A </code><code>true</code> <code>SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For </code><code>more</code> <code>information, see https:</code><code>//urllib3</code><code>.readthedocs.org</code><code>/en/latest/security</code><code>.html</code><code>#insecureplatformwarning.</code>
<code> </code><code>InsecurePlatformWarning</code>
<code> </code><code>Downloading jupyter-1.0.0-py2.py3-none-any.whl</code>
<code>Collecting notebook (from jupyter)</code>
<code> </code><code>Downloading notebook-4.0.6-py2.py3-none-any.whl (5.6MB)</code>
<code> </code><code>100% |████████████████████████████████| 5.6MB 57kB</code><code>/s</code>
<code>Collecting ipywidgets (from jupyter)</code>
<code> </code><code>Downloading ipywidgets-4.1.1-py2.py3-none-any.whl (117kB)</code>
<code> </code><code>100% |████████████████████████████████| 118kB 1.2MB</code><code>/s</code>
<code>Collecting nbconvert (from jupyter)</code>
<code> </code><code>Downloading nbconvert-4.1.0-py2.py3-none-any.whl (281kB)</code>
<code> </code><code>100% |████████████████████████████████| 282kB 735kB</code><code>/s</code>
<code>Collecting ipykernel (from jupyter)</code>
<code> </code><code>Downloading ipykernel-4.1.1-py2.py3-none-any.whl (90kB)</code>
<code> </code><code>100% |████████████████████████████████| 94kB 1.5MB</code><code>/s</code>
<code>Collecting jupyter-console (from jupyter)</code>
<code> </code><code>Downloading jupyter_console-4.0.3-py2.py3-none-any.whl</code>
<code>Collecting qtconsole (from jupyter)</code>
<code> </code><code>Downloading qtconsole-4.1.0-py2.py3-none-any.whl (98kB)</code>
<code> </code><code>100% |████████████████████████████████| 102kB 1.5MB</code><code>/s</code>
<code>Collecting traitlets (from notebook->jupyter)</code>
<code> </code><code>Using cached traitlets-4.0.0-py2.py3-none-any.whl</code>
<code>Collecting tornado>=4 (from notebook->jupyter)</code>
<code> </code><code>Downloading tornado-4.3.</code><code>tar</code><code>.gz (450kB)</code>
<code> </code><code>100% |████████████████████████████████| 454kB 313kB</code><code>/s</code>
<code>Collecting jupyter-client (from notebook->jupyter)</code>
<code> </code><code>Downloading jupyter_client-4.1.1-py2.py3-none-any.whl (70kB)</code>
<code> </code><code>100% |████████████████████████████████| 73kB 1.7MB</code><code>/s</code>
<code>Collecting nbformat (from notebook->jupyter)</code>
<code> </code><code>Downloading nbformat-4.0.1-py2.py3-none-any.whl (138kB)</code>
<code> </code><code>100% |████████████████████████████████| 139kB 1.3MB</code><code>/s</code>
<code>Collecting jupyter-core (from notebook->jupyter)</code>
<code> </code><code>Downloading jupyter_core-4.0.6-py2.py3-none-any.whl (74kB)</code>
<code> </code><code>100% |████████████████████████████████| 77kB 1.4MB</code><code>/s</code>
<code>Collecting jinja2 (from notebook->jupyter)</code>
<code> </code><code>Downloading Jinja2-2.8-py2.py3-none-any.whl (263kB)</code>
<code> </code><code>100% |████████████████████████████████| 266kB 222kB</code><code>/s</code>
<code>Collecting terminado>=0.3.3 (from notebook->jupyter)</code>
<code> </code><code>Downloading terminado-0.5.</code><code>tar</code><code>.gz</code>
<code>Collecting ipython-genutils (from notebook->jupyter)</code>
<code> </code><code>Using cached ipython_genutils-0.1.0-py2.py3-none-any.whl</code>
<code>Collecting ipython>=4.0.0dev0 (from ipywidgets->jupyter)</code>
<code> </code><code>Using cached ipython-4.0.0-py2-none-any.whl</code>
<code>Collecting pygments (from nbconvert->jupyter)</code>
<code> </code><code>Downloading Pygments-2.0.2-py2-none-any.whl (672kB)</code>
<code> </code><code>100% |████████████████████████████████| 675kB 434kB</code><code>/s</code>
<code>Collecting mistune!=0.6 (from nbconvert->jupyter)</code>
<code> </code><code>Downloading mistune-0.7.1-py2.py3-none-any.whl</code>
<code>Collecting decorator (from traitlets->notebook->jupyter)</code>
<code> </code><code>Downloading decorator-4.0.4-py2.py3-none-any.whl</code>
<code>Collecting backports.ssl-match-</code><code>hostname</code> <code>(from tornado>=4->notebook->jupyter)</code>
<code> </code><code>Downloading backports.ssl_match_hostname-3.4.0.2.</code><code>tar</code><code>.gz</code>
<code>Collecting singledispatch (from tornado>=4->notebook->jupyter)</code>
<code> </code><code>Downloading singledispatch-3.4.0.3-py2.py3-none-any.whl</code>
<code>Collecting certifi (from tornado>=4->notebook->jupyter)</code>
<code> </code><code>Downloading certifi-2015.9.6.2-py2.py3-none-any.whl (371kB)</code>
<code> </code><code>100% |████████████████████████████████| 372kB 797kB</code><code>/s</code>
<code>Collecting backports-abc>=0.4 (from tornado>=4->notebook->jupyter)</code>
<code> </code><code>Downloading backports_abc-0.4-py2.py3-none-any.whl</code>
<code>Collecting pyzmq>=13 (from jupyter-client->notebook->jupyter)</code>
<code> </code><code>Downloading pyzmq-15.0.0.</code><code>tar</code><code>.gz (1.1MB)</code>
<code> </code><code>100% |████████████████████████████████| 1.1MB 310kB</code><code>/s</code>
<code>Collecting jsonschema!=2.5.0,>=2.0 (from nbformat->notebook->jupyter)</code>
<code> </code><code>Downloading jsonschema-2.5.1-py2.py3-none-any.whl</code>
<code>Collecting MarkupSafe (from jinja2->notebook->jupyter)</code>
<code> </code><code>Downloading MarkupSafe-0.23.</code><code>tar</code><code>.gz</code>
<code>Collecting ptyprocess (from terminado>=0.3.3->notebook->jupyter)</code>
<code> </code><code>Using cached ptyprocess-0.5.</code><code>tar</code><code>.gz</code>
<code>Collecting simplegeneric>0.8 (from ipython>=4.0.0dev0->ipywidgets->jupyter)</code>
<code> </code><code>Using cached simplegeneric-0.8.1.zip</code>
<code>Collecting pexpect (from ipython>=4.0.0dev0->ipywidgets->jupyter)</code>
<code> </code><code>Using cached pexpect-4.0.1.</code><code>tar</code><code>.gz</code>
<code>Collecting pickleshare (from ipython>=4.0.0dev0->ipywidgets->jupyter)</code>
<code> </code><code>Using cached pickleshare-0.5.</code><code>tar</code><code>.gz</code>
<code>Collecting six (from singledispatch->tornado>=4->notebook->jupyter)</code>
<code> </code><code>Using cached six-1.10.0-py2.py3-none-any.whl</code>
<code>Collecting functools32 (from jsonschema!=2.5.0,>=2.0->nbformat->notebook->jupyter)</code>
<code> </code><code>Downloading functools32-3.2.3-2.</code><code>tar</code><code>.gz</code>
<code>Collecting path.py (from pickleshare->ipython>=4.0.0dev0->ipywidgets->jupyter)</code>
<code> </code><code>Using cached path.py-8.1.2-py2.py3-none-any.whl</code>
<code>Building wheels </code><code>for</code> <code>collected packages: tornado, terminado, backports.ssl-match-</code><code>hostname</code><code>, pyzmq, MarkupSafe, ptyprocess, simplegeneric, pexpect, pickleshare, functools32</code>
<code> </code><code>Running setup.py bdist_wheel </code><code>for</code> <code>tornado</code>
<code> </code><code>Stored </code><code>in</code> <code>directory: </code><code>/root/</code><code>.cache</code><code>/pip/wheels/2d/e6/19/1a61a89abb78cc3e1761a5844eaa1fdc86fd41b38353df5967</code>
<code> </code><code>Running setup.py bdist_wheel </code><code>for</code> <code>terminado</code>
<code> </code><code>Stored </code><code>in</code> <code>directory: </code><code>/root/</code><code>.cache</code><code>/pip/wheels/f9/7c/62/fe686f920ed9fbc013e631a5415ec3162602b31e762595e3fe</code>
<code> </code><code>Running setup.py bdist_wheel </code><code>for</code> <code>backports.ssl-match-</code><code>hostname</code>
<code> </code><code>Stored </code><code>in</code> <code>directory: </code><code>/root/</code><code>.cache</code><code>/pip/wheels/81/3d/36/f3c726a42caed585046d710e0e450bda1075c61c1c43443831</code>
<code> </code><code>Running setup.py bdist_wheel </code><code>for</code> <code>pyzmq</code>
<code> </code><code>Stored </code><code>in</code> <code>directory: </code><code>/root/</code><code>.cache</code><code>/pip/wheels/3a/7a/27/93f017cb86670a08e6114a95c05885bb4dda1f81830ff4306c</code>
<code> </code><code>Running setup.py bdist_wheel </code><code>for</code> <code>MarkupSafe</code>
<code> </code><code>Stored </code><code>in</code> <code>directory: </code><code>/root/</code><code>.cache</code><code>/pip/wheels/94/a7/79/f79a998b64c1281cb99fa9bbd33cfc9b8b5775f438218d17a7</code>
<code> </code><code>Running setup.py bdist_wheel </code><code>for</code> <code>ptyprocess</code>
<code> </code><code>Stored </code><code>in</code> <code>directory: </code><code>/root/</code><code>.cache</code><code>/pip/wheels/8f/0b/d5/45ebc79539db587c173a63b42572328136bdb098210767fb80</code>
<code> </code><code>Running setup.py bdist_wheel </code><code>for</code> <code>simplegeneric</code>
<code> </code><code>Stored </code><code>in</code> <code>directory: </code><code>/root/</code><code>.cache</code><code>/pip/wheels/51/3c/13/2b621669f3ba74b01380aefcc0af0f643bb42360e7248496ed</code>
<code> </code><code>Running setup.py bdist_wheel </code><code>for</code> <code>pexpect</code>
<code> </code><code>Stored </code><code>in</code> <code>directory: </code><code>/root/</code><code>.cache</code><code>/pip/wheels/ea/5b/53/4b65a279e1390ae81febe74f660ce01ef4655c9c1ec9acd9bf</code>
<code> </code><code>Running setup.py bdist_wheel </code><code>for</code> <code>pickleshare</code>
<code> </code><code>Stored </code><code>in</code> <code>directory: </code><code>/root/</code><code>.cache</code><code>/pip/wheels/99/3e/8b/7d87bf47f2c2d437fcb9a913cd5c4b393b7132c508633e3eef</code>
<code> </code><code>Running setup.py bdist_wheel </code><code>for</code> <code>functools32</code>
<code> </code><code>Stored </code><code>in</code> <code>directory: </code><code>/root/</code><code>.cache</code><code>/pip/wheels/38/c6/c7/ee17acd621120c302e25c2fa8b3a8b235d5d1137c6ab4c9728</code>
<code>Successfully built tornado terminado backports.ssl-match-</code><code>hostname</code> <code>pyzmq MarkupSafe ptyprocess simplegeneric pexpect pickleshare functools32</code>
<code>Installing collected packages: decorator, ipython-genutils, traitlets, backports.ssl-match-</code><code>hostname</code><code>, six, singledispatch, certifi, backports-abc, tornado, jupyter-core, pyzmq, jupyter-client, functools32, jsonschema, nbformat, MarkupSafe, jinja2, simplegeneric, ptyprocess, pexpect, path.py, pickleshare, ipython, ipykernel, terminado, pygments, mistune, nbconvert, notebook, ipywidgets, jupyter-console, qtconsole, jupyter</code>
<code>Successfully installed MarkupSafe-0.23 backports-abc-0.4 backports.ssl-match-</code><code>hostname</code><code>-3.4.0.2 certifi-2015.9.6.2 decorator-4.0.4 functools32-3.2.3.post2 ipykernel-4.1.1 ipython-4.0.0 ipython-genutils-0.1.0 ipywidgets-4.1.1 jinja2-2.8 jsonschema-2.5.1 jupyter-1.0.0 jupyter-client-4.1.1 jupyter-console-4.0.3 jupyter-core-4.0.6 mistune-0.7.1 nbconvert-4.1.0 nbformat-4.0.1 notebook-4.0.6 path.py-8.1.2 pexpect-4.0.1 pickleshare-0.5 ptyprocess-0.5 pygments-2.0.2 pyzmq-15.0.0 qtconsole-4.1.0 simplegeneric-0.8.1 singledispatch-3.4.0.3 six-1.10.0 terminado-0.5 tornado-4.3 traitlets-4.0.0</code>
到此jupyter己經安裝完成了,看到這麼多的依賴,我對那些一步步排錯手并安裝成功,隻能說我不如他們!
二、jupyter的使用
1、jupyter 幫助
<code>(ipython_notebook)[root@localhost python_object]</code><code># jupyter -h</code>
<code>usage: jupyter [-h] [--version] [--config-</code><code>dir</code><code>] [--data-</code><code>dir</code><code>] [--runtime-</code><code>dir</code><code>]</code>
<code> </code><code>[--paths] [--json]</code>
<code> </code><code>[subcommand]</code>
<code>Jupyter: Interactive Computing</code>
<code>positional arguments:</code>
<code> </code><code>subcommand the subcommand to launch</code>
<code>optional arguments:</code>
<code> </code><code>-h, --help show this help message and </code><code>exit</code>
<code> </code><code>--version show the jupyter </code><code>command</code><code>'s version and </code><code>exit</code>
<code> </code><code>--config-</code><code>dir</code> <code>show Jupyter config </code><code>dir</code>
<code> </code><code>--data-</code><code>dir</code> <code>show Jupyter data </code><code>dir</code>
<code> </code><code>--runtime-</code><code>dir</code> <code>show Jupyter runtime </code><code>dir</code>
<code> </code><code>--paths show all Jupyter paths. Add --json </code><code>for</code> <code>machine-readable</code>
<code> </code><code>format</code><code>.</code>
<code> </code><code>--json output paths as machine-readable json</code>
<code>Available subcommands: console kernelspec migrate nbconvert nbextension</code>
<code>notebook qtconsole trust</code>
2、啟動jupyter notebook
啟動jupyter notebook後預設監聽于本地8888,如果想外部通路也很簡單
<code>jupyter notebook --ip=x.x.x.x</code>
這樣就可從web界面通路了
3、jupyter notebook web界面的使用
這些目錄都在安裝所使用的使用者的.ipython的目錄下。
如果你不想使用預設的配置參數,可以直接寫配置檔案,啟動服務時引用配置檔案。
我們重點說一下python2[右邊最後一個功能],其它的一看就知道是什麼意思了【2333.。】
打開後與前面的截圖是一樣的,這可以看作ipython的web界面,但它的功能不止于此,你可以把它當成編輯器,notebook,如果單一的使用ipython或是vim感覺總是缺點什麼,但jupyter notebook就将兩者結合的很好,當然還可能安裝許多額外的擴充更好的支援你所需要的功能。
如果你不知道有那些快捷鍵可以點help-->Keyboard shortcuts檢視支援的快捷鍵,還可以看幫助引導,分分鐘教會你使用[我知道還是上圖更有說服力,但太多了,就不操作了,當你安裝成功自己找吧]
說的再多也不及你自己安裝完成後體驗一下。[我在網上見過一個大牛用jupyter寫項目。。]
本文轉自 jinlinger 51CTO部落格,原文連結:http://blog.51cto.com/essun/1712773,如需轉載請自行聯系原作者