プロジェクト

全般

プロフィール

Jupyter » 履歴 » バージョン 2

kanata, 2025/04/13 15:38

1 1 kanata
# Jupyter
2
3
{{toc}}
4
5
シェル芸人のためのJupyter環境を構築しよう!!!11
6
7
## スクリーンショット
8
9
![screenshot1.png](screenshot1.png)
10
11
# Jupyterとは
12
13
スクリーンショットをご覧あれ。ブラウザでPython(Bashも)を実行出来る環境です。
14
15
* [[Markdown]]形式のメモと一緒にWeb上で実行&保存できちゃうステキ機能
16
* 書いた物は保存できて、いつでも再実行可。
17
* スライドやhtmlにも変換できます。
18
* GitHub Gistにエクスポートすれば、公開もできちゃう。
19
20
まさに[Pythonista](http://ejje.weblio.jp/content/Pythonista)([シェル芸人](http://d.hatena.ne.jp/keyword/%A5%B7%A5%A7%A5%EB%B7%DD%BF%CD))のための環境ですねw
21
22
噂の買い切りVPS[CloudAtCost](http://www.cloudatcost.com/)に導入してみてもいいかもしれない。
23
24
# Jupyter環境の構築
25
26
ググると幾つか出てきますが、minicondaを使用したインストール方法を以下にまとめます。
27
28
minicondaを利用する利点としては、こんな感じです。
29
30
* 一般ユーザの環境に導入できる(システムに深く食い込まないので、アンインストールが簡単)
31
* 既存のPython環境と別々に作ることができ、かつ、お互いに干渉しない環境が簡単に作れる
32
* 容量が[anaconda](https://www.continuum.io/downloads)より小さく、必要最小限。
33
34
> minicondaは、主にPythonの数値処理系のライブラリを加えた[anaconda](https://www.continuum.io/downloads)というものの最小のセットになります。
35
36
## 想定する環境
37
38
以下を想定しています
39
40
* CentOS または RedHatLinux
41
42
実際にセットアップした環境は以下です。
43
44
~~~
45
CentOS Linux release 7.2.1511 (Core) 
46
~~~
47
48
## minicondaのインストール
49
50
以下からセットアップ用のファイルをダウンロードします。
51
python3用のセットアップファイルをダウンロードしてください。
52
53
miniconda
54
http://conda.pydata.org/miniconda.html
55
56
57
~~~
58
$ wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
59
~~~
60
61
>余談ですけど、このシェルスクリプト、バイナリファイルと悪魔合体する黒魔術を使っているので、catしてみたりすると大変な事になりますw
62
63
64
65
66
実行。
67
途中、対話形式で入力を求められますが、以下のよう入力してください。
68
69
~~~
70
$ bash Miniconda3-latest-Linux-x86_64.sh
71
[Enter]
72
yes
73
[Enter] # or 任意のインストール先を入力
74
no      # システムに標準で入っているPython環境と使い分けをしたいため。.bashrcに追加されてもいい人は yes にしておく。
75
~~~
76
77
インストール時にnoを選択して .bashrc に追加しなかったので、以下の通り、任意に環境変数をセットするシェルスクリプトを作成しておきます。
78
これによって、こんな環境の切り替えができます。
79
80
* 通常は、システムに入っているPythonが使われる。
81
* このシェルスクリプトを実行して環境変数を取り込んだときだけ、miniconda環境が使われる。
82
83
84
85
環境変数(PATH)設定用のシェルスクリプトを作る。
86
87
~~~
88
$ vi setenv.sh
89
#!/bin/bash
90
91
PATH=[minicondaのインストールディレクトリ]/miniconda3/bin:$PATH
92
export PATH
93
~~~
94
95
ドット実行する。
96
環境変数PATHの先頭に[minicondaのインストールディレクトリ]/bin が含まれていることを確認する。
97
98
~~~
99
$ . setenv.sh
100
$ env |grep PATH
101
PATH=[minicondaのインストールディレクトリ]/miniconda3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
102
~~~
103
104
## Jupyterのインストール(minicondaインストール先にインストールされる)
105
106
~~~
107
$ conda install jupyter
108
~~~
109
110
Jupyter設定ファイルの生成。
111
112
~~~
113
$ jupyter notebook --generate-config
114
~~~
115
116
パスワードの作成(結果をメモしておく)
117
118
以下はパスワードを hoge にしているけど、適宜変更してね。
119
120
~~~
121
$ python
122
Python 3.5.1 |Continuum Analytics, Inc.| (default, Dec  7 2015, 11:16:01) 
123
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
124
Type "help", "copyright", "credits" or "license" for more information.
125
>>> from notebook.auth import passwd
126
>>> passwd()
127
Enter password: hoge
128
Verify password: hoge
129
'sha1:86a104de86a2:d3f296d042d0be7c38df963b01670e51dd2ab081'
130
>>> quit()
131
~~~
132
133
Jupyter設定ファイルの編集
134
135
1. ローカルホストからしか接続を認めない→どこからでもOKに修正
136
2. Jupyterで書いたファイルの保存先を指定
137
3. 認証パスワードを設定(上記Pythonのpasswd()の事項結果をコピペ)
138
4. 接続先ポート番号を指定(デフォルトは8888)
139
140
~~~
141
$ cd ~/.jupyter
142
$ vi jupyter_notebook_config.py
143
144
- # c.NotebookApp.ip = 'localhost'
145
+ c.NotebookApp.ip = '*'
146
147
- # c.NotebookApp.notebook_dir = u''
148
+ c.NotebookApp.notebook_dir = u'ファイルを保存する任意のディレクトリ'
149
150
- # c.NotebookApp.password = u''
151
+ c.NotebookApp.password = u'sha1:86a104de86a2:d3f296d042d0be7c38df963b01670e51dd2ab081'
152
153
- # c.NotebookApp.port = 8888
154
+ c.NotebookApp.port = 8883
155
~~~
156
157
httpsて通信するための設定
158
159
 * Let's Encrypt サーバー証明書を取得しましょう。
160
 * 詳細は、[[ServersMan]]の Let's Encrypt サーバー証明書の取得と自動更新設定 を参照のこと。
161
 * 証明書が準備できたら、Jupyter設定ファイルの編集します。
162
163
1. サーバ証明書の所在を設定
164
2. 秘密鍵の所在を設定
165
166
~~~
167
$ cd ~/.jupyter
168
$ vi jupyter_notebook_config.py
169
170
- # c.NotebookApp.certfile = u''
171
+ c.NotebookApp.certfile = u'/etc/letsencrypt/live/<ドメイン名>/cert.pem'
172
173
- # c.NotebookApp.keyfile = u''
174
+ c.NotebookApp.keyfile = u'/etc/letsencrypt/live/<ドメイン名>/privkey.pem'
175
176
~~~
177
178
## Jupyterに Bash のJupyterカーネルを導入する
179
180
Jupyterカーネルと呼ばれる以下を追加インストールすることで、
181
Bash版Jupyterになるのでありえん良さみが深い(Python3環境が前提、Python2だどダメ)。
182
183
A bash kernel for IPython
184
https://github.com/takluyver/bash_kernel
185
186
~~~
187
$ . setenv.sh
188
$ pip install bash_kernel
189
$ python -m bash_kernel.install
190
~~~
191
192
実は、他のいろんな言語も用意されているので、大半の言語はJupyter上で動かす事ができる。
193
194
[参考:IPython kernels for other languages](https://github.com/ipython/ipython/wiki/IPython-kernels-for-other-languages)
195
196
## Jupyterの起動
197
198
起動
199
200
~~~
201
$ jupyter-notebook
202
~~~
203
204
後はブラウザで、https://example.com:8883 にアクセスするべし。
205
206
207
## minicondaでPython2環境も作って共存させる場合
208
209
同じ方法でpython2環境も起動できる。
210
ただし、python3とpython2のJupyter環境を同時に起動するには、
211
Jupyter設定ファイルのポート番号を別々にする必要がある
212
213
~~~
214
$ vi jupyter_notebook_config_for_python2.py
215
216
- # c.NotebookApp.port = 8888
217
+ c.NotebookApp.port = 8882 # python3の設定値とは別にする
218
~~~
219
220
起動は、作った設定ファイルを直接指定して起動できる。
221
222
~~~
223
$ jupyter-notebook --config=設定ファイルのパス
224
~~~
225
226
# 使い方
227
228
使い方はググると沢山出てくるので、そちらに譲ります。
229
(当ページ下部のMemoの所にもリンクを入れておきました)
230
231
シェル芸人のためのJupyterの使い方を説明します。
232
233
## シェル芸人のためのJupyter使い方
234
235
まず、デフォルトのPythonカーネルでもシェル芸はできます。
236
行頭に%%bashと入力すればシェルを実行できます。
237
238
~~~
239
%%bash
240
date;echo hoge;date
241
~~~
242
243
![screenshot2.png](screenshot2.png)
244
245
ただ、カーネルを Bash に切り替えることで、この%%bashが不要になります。
246
あとは……わかるね?
247
248
~~~
249
date;echo hoge;date
250
~~~
251
252
![screenshot3.png](screenshot3.png)
253
254
# Memo
255
256
Jupyter関連で役立ちそうなリンクのメモ。
257
258
Jupyter (iPython) Notebookを使って技術ノート環境を構築する方法 - MyEnigma
259
http://myenigma.hatenablog.com/entry/2016/02/20/183423
260
261
{{rawhtml(<a class="embedly-card" href="http://myenigma.hatenablog.com/entry/2016/02/20/183423">Jupyter (iPython) Notebookを使って技術ノート環境を構築する方法 - MyEnigma</a><script async src="//cdn.embedly.com/widgets/platform.js" charset="UTF-8"></script>)}}
262
263
264
Jupyter (iPython) Notebookを使ってプレゼンテーション資料を作る方法 - MyEnigma
265
http://myenigma.hatenablog.com/entry/2016/05/22/160209
266
267
{{rawhtml(<a class="embedly-card" href="http://myenigma.hatenablog.com/entry/2016/05/22/160209">Jupyter (iPython) Notebookを使ってプレゼンテーション資料を作る方法 - MyEnigma</a><script async src="//cdn.embedly.com/widgets/platform.js" charset="UTF-8"></script>)}}
268
269
----
270
271
Qiita
272
273
Jupyter事始め - Qiita
274
http://qiita.com/taka4sato/items/2c3397ff34c440044978
275
276
extensionを追加してもっと快適なJupyter環境を構築する - Qiita
277
http://qiita.com/sasaki77/items/30a19d2be7d94116b237
278
279
Condaで作ってる仮想環境の切り替えをJupyter上で簡単に行う方法 - Qiita
280
http://qiita.com/yoppe/items/38005f415a5b8b884c7d
281
282
Jupyter Notebookでブログ書きたい - Qiita
283
http://qiita.com/patraqushe/items/49a990cbdfb51afed620
284
285
Jupyter notebook で HTML も自動作成 - Qiita
286
http://qiita.com/junkoda/items/011d44dcc1c8bd0a936a
287
288
Jupyterでコンテナーを入れ子の枠で表現(図式化)、とそれを作る過程で調べたこと - Qiita
289
http://qiita.com/argius/items/17710321c8225bfb7417
290
291
Jupyterで好きなHTMLを埋め込む - Qiita
292
http://qiita.com/xeno1991/items/65b7da476d6f89d06388
293
294
Qiitaの記事とJupyter notebokとの相互変換 - Qiita
295
http://qiita.com/Tsutomu-KKE@github/items/168400d2e3ea44a70022
296
297
iPython でスライド作り - Qiita
298
http://qiita.com/sosuke/items/e42b5b81878e361249b6
299
300
junpyter notebookをCUIで実行&保存 - Qiita
301
http://qiita.com/nzw0301/items/83814189bd93224b7c51
302
303
nbviewerでスライド表示もできるようになった!【Jupyter】 - Qiita
304
http://qiita.com/ssh0/items/de6cc6aacd004a2e57dd
305
306
データサイエンティストに向けたコーディング環境Jupyter Notebookの勧め - Qiita
307
http://qiita.com/y__sama/items/17aedf0c05187edd61c3
308
309
----
310
311
nbviewer - A simple way to share Jupyter Notebooks
312
http://nbviewer.jupyter.org/
313
314
once upon a time, - JupyterからSpark clusterを操作できるlivy + sparkmagicを試してみた
315
http://chezou.hatenablog.com/entry/2016/07/12/115000
316
317
Jupyter Notebook の Tips をまとめてみた
318
https://adtech.cyberagent.io/techblog/archives/2317