ハードウェアの気になるあれこれ

技術的に興味のあることを調べて書いてくブログ。主にハードウェアがネタ。

Chisel用のjupyter-notebook環境構築 on Windows10

スポンサーリンク

現在絶賛Chiselの勉強中で、そのためにChisel-Bootcampというものを使って文法を学んできた。

これまでは自宅のデスクトップPCで作業をしており、そちらはWindowsLinux(Ubuntu16.04LTS)のデュアルブートになっているため、通常こういった開発系の作業はUbuntuを使って行っている。

そのため、Chiselの勉強に関してもこれまではUbuntu上に構築した環境で作業を行っていたが、実家帰省に伴い作業環境がWindows10のノートPCしかない状態である。

折角なので、Windows10環境にChisel-Bootcampを立ち上げてブログのネタにしてみようと画策したのが本記事だ。

インストール手順概要

WindowsにChisel-Boocampをインストールする」とは言っても、実際のところはLinuxで環境を構築するのとさほど手順的には変わらない。

  1. javaのインストール
  2. pythonのインストール
  3. jupyter-notebookのインストール
  4. scalaのインストール

Chisel-Bootcampのインストール

Javaのインストール

以下のページからイントーラーをダウンロードする。なお、Chisel-BootcampはJava8が必要なのでそこだけ注意が必要だ。

f:id:diningyo-kpuku-jougeki:20181231165603j:plain

ダウンロード前に、"Accept License Agreement"のチェックボックスをマークしないとダウンロードができないので、それを行ってから以下のファイルをダウンロード(32bit版の場合はi586になる)

インストール後にインストーラを「管理者から実行」で起動して、デフォルトの設定のままインストーラを実行する。

Pythonのインストール

公式のpythonインストーラを使ってもいいが、jupyter-notebook周りはAnacondaを使ったほうが余計な手間なくインストール出来るのでそちらを使うことにする。(Chisel-Bootcampの手順的にもそちらが推奨されている)

Anacondaをインストールすれば、その時点でjupyter-notebookも全部インストールされるので面倒ならそちらをおススメする。ここではディスクの容量の関係からMinicondaを入れて、別途jupyter-nonte-bookをインストールすることにする。

上記のページから自身の環境に合わせて32bit or 64bitを選択してダウンロードしよう。ダウンロードしたインストーラを起動して、インストールを実行しよう。この際にインストールする場所によっては管理者権限が必要になる。

インストール先を変更しなくてもインストール可能だが、デフォルトのインストール場所は個人的には微妙な位置なので、好みに応じて変更するといい。

インストールの最後に以下のようなチェックボックスの選択肢が表示される。これはWindows環境変数設定に関するものでチェックしなくても作業に支障はない。他にpythonの環境がWindowsに入っていなければチェックしても問題ないので、自身の環境に合わせて選択しよう。

f:id:diningyo-kpuku-jougeki:20181231165623j:plain

Jupyter-notebookのインストール

pythonのインストール時にAnacondaをインストールしている場合はここの手順は不要なはず。ここではJupyter-notebookをインストールする。

手順は

  1. Anaconda Promptを立ち上げる
  2. condaコマンドでjupyterをインストールする

だけである。

Minicondaのインストール後にWindowsのメニューに"Anaconda"が増えており、その中に"Anaconda prompt"というメニューがあるのでそれを起動する。

f:id:diningyo-kpuku-jougeki:20181231165727j:plain

起動後に以下のコマンドを実行すると、あとは依存パッケージもろともcondaコマンドが勝手にインストールを実行してくれる。

> conda install jupyter

以下がインストール時のログ。

Solving environment: done

## Package Plan ##

  environment location: C:\Miniconda3

  added / updated specs:
    - jupyter


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    nbconvert-5.3.1            |           py37_0         422 KB
    jinja2-2.10                |           py37_0         183 KB
    nbformat-4.4.0             |           py37_0         160 KB
    markupsafe-1.1.0           |   py37he774522_0          29 KB
    jupyter_console-6.0.0      |           py37_0          53 KB
    m2w64-libwinpthread-git-5.0.0.4634.697f757|                2          30 KB
    m2w64-gcc-libs-5.3.0       |                7         518 KB
    ipykernel-5.1.0            |   py37h39e3cac_0         156 KB
    jedi-0.13.2                |           py37_0         230 KB
    jsonschema-2.6.0           |           py37_0         104 KB
    ipywidgets-7.4.2           |           py37_0         151 KB
    jupyter_core-4.4.0         |           py37_0          85 KB
    pandocfilters-1.4.2        |           py37_1          13 KB
    cryptography-2.4.2         |   py37h7a1dbc1_0         550 KB
    terminado-0.8.1            |           py37_1          21 KB
    traitlets-4.3.2            |           py37_0         133 KB
    testpath-0.4.2             |           py37_0          92 KB
    python-dateutil-2.7.5      |           py37_0         276 KB
    colorama-0.4.1             |           py37_0          24 KB
    libsodium-1.0.16           |       h9d3ae62_0         585 KB
    openssl-1.1.1a             |       he774522_0         5.7 MB
    notebook-5.7.4             |           py37_0         7.3 MB
    wcwidth-0.1.7              |           py37_0          23 KB
    pandoc-2.2.3.2             |                0        21.0 MB
    conda-4.5.12               |           py37_0         1.1 MB
    libpng-1.6.35              |       h2a8f88b_0         589 KB
    qt-5.9.7                   |   vc14h73c81de_0        92.3 MB
    certifi-2018.11.29         |           py37_0         146 KB
    tornado-5.1.1              |   py37hfa6e2cd_0         665 KB
    jpeg-9b                    |       hb83a4c4_2         313 KB
    pyqt-5.9.2                 |   py37h6538335_2         4.2 MB
    m2w64-gcc-libs-core-5.3.0  |                7         213 KB
    bleach-3.0.2               |           py37_0         218 KB
    parso-0.3.1                |           py37_0         114 KB
    backcall-0.1.0             |           py37_0          19 KB
    webencodings-0.5.1         |           py37_1          19 KB
    sqlite-3.26.0              |       he774522_0         936 KB
    entrypoints-0.2.3          |           py37_2           9 KB
    msys2-conda-epoch-20160418 |                1           2 KB
    send2trash-1.5.0           |           py37_0          16 KB
    widgetsnbextension-3.4.2   |           py37_0         1.7 MB
    icu-58.2                   |       ha66f8fd_1        21.9 MB
    vc-14.1                    |       h0510ff6_4           6 KB
    zlib-1.2.11                |       h62dcd97_3         128 KB
    pywinpty-0.5.5             |        py37_1000          48 KB
    winpty-0.4.3               |                4         1.1 MB
    prometheus_client-0.5.0    |           py37_0          67 KB
    pyzmq-17.1.2               |   py37hfa6e2cd_0         400 KB
    vs2015_runtime-14.15.26706 |       h3a45250_0         2.2 MB
    ipython-7.2.0              |   py37h39e3cac_0         1.1 MB
    pickleshare-0.7.5          |           py37_0          13 KB
    jupyter_client-5.2.4       |           py37_0         203 KB
    m2w64-gcc-libgfortran-5.3.0|                6         340 KB
    pygments-2.3.1             |           py37_0         1.3 MB
    jupyter-1.0.0              |           py37_7           6 KB
    prompt_toolkit-2.0.7       |           py37_0         479 KB
    decorator-4.3.0            |           py37_0          15 KB
    zeromq-4.2.5               |       he025d50_1         9.5 MB
    ipython_genutils-0.2.0     |           py37_0          39 KB
    sip-4.19.8                 |   py37h6538335_0         281 KB
    m2w64-gmp-6.1.0            |                2         689 KB
    qtconsole-4.4.3            |           py37_0         176 KB
    mistune-0.8.4              |   py37he774522_0          54 KB
    ------------------------------------------------------------
                                           Total:       180.3 MB

The following NEW packages will be INSTALLED:

    backcall:                0.1.0-py37_0
    bleach:                  3.0.2-py37_0
    colorama:                0.4.1-py37_0
    decorator:               4.3.0-py37_0
    entrypoints:             0.2.3-py37_2
    icu:                     58.2-ha66f8fd_1
    ipykernel:               5.1.0-py37h39e3cac_0
    ipython:                 7.2.0-py37h39e3cac_0
    ipython_genutils:        0.2.0-py37_0
    ipywidgets:              7.4.2-py37_0
    jedi:                    0.13.2-py37_0
    jinja2:                  2.10-py37_0
    jpeg:                    9b-hb83a4c4_2
    jsonschema:              2.6.0-py37_0
    jupyter:                 1.0.0-py37_7
    jupyter_client:          5.2.4-py37_0
    jupyter_console:         6.0.0-py37_0
    jupyter_core:            4.4.0-py37_0
    libpng:                  1.6.35-h2a8f88b_0
    libsodium:               1.0.16-h9d3ae62_0
    m2w64-gcc-libgfortran:   5.3.0-6
    m2w64-gcc-libs:          5.3.0-7
    m2w64-gcc-libs-core:     5.3.0-7
    m2w64-gmp:               6.1.0-2
    m2w64-libwinpthread-git: 5.0.0.4634.697f757-2
    markupsafe:              1.1.0-py37he774522_0
    mistune:                 0.8.4-py37he774522_0
    msys2-conda-epoch:       20160418-1
    nbconvert:               5.3.1-py37_0
    nbformat:                4.4.0-py37_0
    notebook:                5.7.4-py37_0
    pandoc:                  2.2.3.2-0
    pandocfilters:           1.4.2-py37_1
    parso:                   0.3.1-py37_0
    pickleshare:             0.7.5-py37_0
    prometheus_client:       0.5.0-py37_0
    prompt_toolkit:          2.0.7-py37_0
    pygments:                2.3.1-py37_0
    pyqt:                    5.9.2-py37h6538335_2
    python-dateutil:         2.7.5-py37_0
    pywinpty:                0.5.5-py37_1000
    pyzmq:                   17.1.2-py37hfa6e2cd_0
    qt:                      5.9.7-vc14h73c81de_0
    qtconsole:               4.4.3-py37_0
    send2trash:              1.5.0-py37_0
    sip:                     4.19.8-py37h6538335_0
    sqlite:                  3.26.0-he774522_0
    terminado:               0.8.1-py37_1
    testpath:                0.4.2-py37_0
    tornado:                 5.1.1-py37hfa6e2cd_0
    traitlets:               4.3.2-py37_0
    wcwidth:                 0.1.7-py37_0
    webencodings:            0.5.1-py37_1
    widgetsnbextension:      3.4.2-py37_0
    winpty:                  0.4.3-4
    zeromq:                  4.2.5-he025d50_1
    zlib:                    1.2.11-h62dcd97_3

The following packages will be UPDATED:

    certifi:                 2018.8.24-py37_1      --> 2018.11.29-py37_0
    conda:                   4.5.11-py37_0         --> 4.5.12-py37_0
    cryptography:            2.3.1-py37h74b6da3_0  --> 2.4.2-py37h7a1dbc1_0
    openssl:                 1.0.2p-hfa6e2cd_0     --> 1.1.1a-he774522_0
    vc:                      14-h0510ff6_3         --> 14.1-h0510ff6_4
    vs2015_runtime:          14.0.25123-3          --> 14.15.26706-h3a45250_0

Proceed ([y]/n)?


Downloading and Extracting Packages
nbconvert-5.3.1      | 422 KB    | ############################################################################ | 100%
jinja2-2.10          | 183 KB    | ############################################################################ | 100%
nbformat-4.4.0       | 160 KB    | ############################################################################ | 100%
markupsafe-1.1.0     | 29 KB     | ############################################################################ | 100%
jupyter_console-6.0. | 53 KB     | ############################################################################ | 100%
m2w64-libwinpthread- | 30 KB     | ############################################################################ | 100%
m2w64-gcc-libs-5.3.0 | 518 KB    | ############################################################################ | 100%
ipykernel-5.1.0      | 156 KB    | ############################################################################ | 100%
jedi-0.13.2          | 230 KB    | ############################################################################ | 100%
jsonschema-2.6.0     | 104 KB    | ############################################################################ | 100%
ipywidgets-7.4.2     | 151 KB    | ############################################################################ | 100%
jupyter_core-4.4.0   | 85 KB     | ############################################################################ | 100%
pandocfilters-1.4.2  | 13 KB     | ############################################################################ | 100%
cryptography-2.4.2   | 550 KB    | ############################################################################ | 100%
terminado-0.8.1      | 21 KB     | ############################################################################ | 100%
traitlets-4.3.2      | 133 KB    | ############################################################################ | 100%
testpath-0.4.2       | 92 KB     | ############################################################################ | 100%
python-dateutil-2.7. | 276 KB    | ############################################################################ | 100%
colorama-0.4.1       | 24 KB     | ############################################################################ | 100%
libsodium-1.0.16     | 585 KB    | ############################################################################ | 100%
openssl-1.1.1a       | 5.7 MB    | ############################################################################ | 100%
notebook-5.7.4       | 7.3 MB    | ############################################################################ | 100%
wcwidth-0.1.7        | 23 KB     | ############################################################################ | 100%
pandoc-2.2.3.2       | 21.0 MB   | ############################################################################ | 100%
conda-4.5.12         | 1.1 MB    | ############################################################################ | 100%
libpng-1.6.35        | 589 KB    | ############################################################################ | 100%
qt-5.9.7             | 92.3 MB   | ############################################################################ | 100%
certifi-2018.11.29   | 146 KB    | ############################################################################ | 100%
tornado-5.1.1        | 665 KB    | ############################################################################ | 100%
jpeg-9b              | 313 KB    | ############################################################################ | 100%
pyqt-5.9.2           | 4.2 MB    | ############################################################################ | 100%
m2w64-gcc-libs-core- | 213 KB    | ############################################################################ | 100%
bleach-3.0.2         | 218 KB    | ############################################################################ | 100%
parso-0.3.1          | 114 KB    | ############################################################################ | 100%
backcall-0.1.0       | 19 KB     | ############################################################################ | 100%
webencodings-0.5.1   | 19 KB     | ############################################################################ | 100%
sqlite-3.26.0        | 936 KB    | ############################################################################ | 100%
entrypoints-0.2.3    | 9 KB      | ############################################################################ | 100%
msys2-conda-epoch-20 | 2 KB      | ############################################################################ | 100%
send2trash-1.5.0     | 16 KB     | ############################################################################ | 100%
widgetsnbextension-3 | 1.7 MB    | ############################################################################ | 100%
icu-58.2             | 21.9 MB   | ############################################################################ | 100%
vc-14.1              | 6 KB      | ############################################################################ | 100%
zlib-1.2.11          | 128 KB    | ############################################################################ | 100%
pywinpty-0.5.5       | 48 KB     | ############################################################################ | 100%
winpty-0.4.3         | 1.1 MB    | ############################################################################ | 100%
prometheus_client-0. | 67 KB     | ############################################################################ | 100%
pyzmq-17.1.2         | 400 KB    | ############################################################################ | 100%
vs2015_runtime-14.15 | 2.2 MB    | ############################################################################ | 100%
ipython-7.2.0        | 1.1 MB    | ############################################################################ | 100%
pickleshare-0.7.5    | 13 KB     | ############################################################################ | 100%
jupyter_client-5.2.4 | 203 KB    | ############################################################################ | 100%
m2w64-gcc-libgfortra | 340 KB    | ############################################################################ | 100%
pygments-2.3.1       | 1.3 MB    | ############################################################################ | 100%
jupyter-1.0.0        | 6 KB      | ############################################################################ | 100%
prompt_toolkit-2.0.7 | 479 KB    | ############################################################################ | 100%
decorator-4.3.0      | 15 KB     | ############################################################################ | 100%
zeromq-4.2.5         | 9.5 MB    | ############################################################################ | 100%
ipython_genutils-0.2 | 39 KB     | ############################################################################ | 100%
sip-4.19.8           | 281 KB    | ############################################################################ | 100%
m2w64-gmp-6.1.0      | 689 KB    | ############################################################################ | 100%
qtconsole-4.4.3      | 176 KB    | ############################################################################ | 100%
mistune-0.8.4        | 54 KB     | ############################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

jupyter-notebookの起動確認

以下の様に"Anaconda prompt"からjupyter-notebookコマンドを実行するとブラウザが立ち上がってjupyter-notebookが起動するはずだ。

f:id:diningyo-kpuku-jougeki:20181231165704j:plain

Scalaのインストール

続いて、Scalaのインストール。これは"coursier"を使うと簡単にインストール出来るので、それを利用しよう。

以下のリンクから"coursier"をダウンロードする。

これはJavaのファイルなのでJavaの実行環境がインストールされていれば、実行することが出来る。

Windowsコマンドプロンプトを起動して"coursier"のインストールディレクトリに移動後に、以下のコマンドを実行しよう。すると後は勝手にjupyter-notebook上でのscala環境を構築してくれるようになっている。

> java -noverify -jar coursier launch -r sonatype:releases -r sonatype:snapshots -i ammonite -I ammonite:org.jupyter-scala:ammonite-runtime_2.11.11:0.8.3-1 -I ammonite:org.jupyter-scala:scala-api_2.11.11:0.4.2 org.jupyter-scala:scala-cli_2.11.11:0.4.2 -- --id scala --name "Scala"
Error: Unable to access jarfile coursier

インストール後は、コマンドプロンプトもしくはAnaconda promptからjupyter-notebookコマンドを実行して、jupyter-notebookを起動しよう。

開いたjupyter-notebook上で右上のメニューの"New"を開くとその中に"Scala"という選択肢が増えているので、それを選択するとjupyter-notebookのカーネルが"Scala"の状態でノート画面が開く。

f:id:diningyo-kpuku-jougeki:20181231165819j:plain

適当にprintlnとかScalaっぽいことを打って実行して実行が出来れば、インストールは完了だ。

Chisel-bootcamp環境のダウンロード

Chisel-bootcampのgithubに行ってgitコマンドで引っ張るか、zipファイルでダウンロードしたデータをPC上に展開する。Jupyter-notebookが起動する場所はC:\Users\<アカウント名>の下になるので、その下に展開するのが手っ取り早い。

展開したChisel-bootcampの下に移動して、"2.1_first_module"を起動して先頭のコードブロックから適当に実行してエラーが出なければ環境構築は完了だ。

f:id:diningyo-kpuku-jougeki:20181231165859j:plain

f:id:diningyo-kpuku-jougeki:20181231165915j:plain

年内の最終記事ということで適当な記事を書いてごまかしてみた。今年のまとめでも、、、と思ったけど、そもそも今年の8月にブログ始めたのであんまりまとめることもないかなーという。。

来年もこんな感じでその時々で気になる技術ネタを自分なりに掘り下げて書いていくと思うので、興味が持てそうなネタがあれば、見ていただけるとありがたいです。

ということで、今年最後の記事でした。よい年末をお過ごしください<m(__)m>