現在絶賛Chiselの勉強中で、そのためにChisel-Bootcampというものを使って文法を学んできた。
これまでは自宅のデスクトップPCで作業をしており、そちらはWindowsとLinux(Ubuntu16.04LTS)のデュアルブートになっているため、通常こういった開発系の作業はUbuntuを使って行っている。
そのため、Chiselの勉強に関してもこれまではUbuntu上に構築した環境で作業を行っていたが、実家帰省に伴い作業環境がWindows10のノートPCしかない状態である。
折角なので、Windows10環境にChisel-Bootcampを立ち上げてブログのネタにしてみようと画策したのが本記事だ。
インストール手順概要
「WindowsにChisel-Boocampをインストールする」とは言っても、実際のところはLinuxで環境を構築するのとさほど手順的には変わらない。
Chisel-Bootcampのインストール
Javaのインストール
以下のページからイントーラーをダウンロードする。なお、Chisel-BootcampはJava8が必要なのでそこだけ注意が必要だ。
ダウンロード前に、"Accept License Agreement"のチェックボックスをマークしないとダウンロードができないので、それを行ってから以下のファイルをダウンロード(32bit版の場合はi586になる)
インストール後にインストーラを「管理者から実行」で起動して、デフォルトの設定のままインストーラを実行する。
Pythonのインストール
公式のpythonのインストーラを使ってもいいが、jupyter-notebook周りはAnacondaを使ったほうが余計な手間なくインストール出来るのでそちらを使うことにする。(Chisel-Bootcampの手順的にもそちらが推奨されている)
Anacondaをインストールすれば、その時点でjupyter-notebookも全部インストールされるので面倒ならそちらをおススメする。ここではディスクの容量の関係からMinicondaを入れて、別途jupyter-nonte-bookをインストールすることにする。
- Anaconda : https://www.anaconda.com/download/#windows
- Miniconda : https://conda.io/miniconda.html
上記のページから自身の環境に合わせて32bit or 64bitを選択してダウンロードしよう。ダウンロードしたインストーラを起動して、インストールを実行しよう。この際にインストールする場所によっては管理者権限が必要になる。
インストール先を変更しなくてもインストール可能だが、デフォルトのインストール場所は個人的には微妙な位置なので、好みに応じて変更するといい。
インストールの最後に以下のようなチェックボックスの選択肢が表示される。これはWindowsの環境変数設定に関するものでチェックしなくても作業に支障はない。他にpythonの環境がWindowsに入っていなければチェックしても問題ないので、自身の環境に合わせて選択しよう。
Jupyter-notebookのインストール
pythonのインストール時にAnacondaをインストールしている場合はここの手順は不要なはず。ここではJupyter-notebookをインストールする。
手順は
- Anaconda Promptを立ち上げる
- condaコマンドでjupyterをインストールする
だけである。
Minicondaのインストール後にWindowsのメニューに"Anaconda"が増えており、その中に"Anaconda prompt"というメニューがあるのでそれを起動する。
起動後に以下のコマンドを実行すると、あとは依存パッケージもろとも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
が起動するはずだ。
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"の状態でノート画面が開く。
適当にprintln
とかScalaっぽいことを打って実行して実行が出来れば、インストールは完了だ。
Chisel-bootcamp環境のダウンロード
Chisel-bootcampのgithubに行ってgitコマンドで引っ張るか、zipファイルでダウンロードしたデータをPC上に展開する。Jupyter-notebookが起動する場所はC:\Users\<アカウント名>
の下になるので、その下に展開するのが手っ取り早い。
展開したChisel-bootcampの下に移動して、"2.1_first_module"を起動して先頭のコードブロックから適当に実行してエラーが出なければ環境構築は完了だ。
年内の最終記事ということで適当な記事を書いてごまかしてみた。今年のまとめでも、、、と思ったけど、そもそも今年の8月にブログ始めたのであんまりまとめることもないかなーという。。
来年もこんな感じでその時々で気になる技術ネタを自分なりに掘り下げて書いていくと思うので、興味が持てそうなネタがあれば、見ていただけるとありがたいです。
ということで、今年最後の記事でした。よい年末をお過ごしください<m(__)m>