Jupyter » 履歴 » バージョン 2
kanata, 2025/04/13 15:38
| 1 | 1 | kanata | # Jupyter |
|---|---|---|---|
| 2 | |||
| 3 | {{toc}} |
||
| 4 | |||
| 5 | シェル芸人のためのJupyter環境を構築しよう!!!11 |
||
| 6 | |||
| 7 | ## スクリーンショット |
||
| 8 | |||
| 9 |  |
||
| 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 |  |
||
| 244 | |||
| 245 | ただ、カーネルを Bash に切り替えることで、この%%bashが不要になります。 |
||
| 246 | あとは……わかるね? |
||
| 247 | |||
| 248 | ~~~ |
||
| 249 | date;echo hoge;date |
||
| 250 | ~~~ |
||
| 251 | |||
| 252 |  |
||
| 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 |