未完放流

終わりなど無い、有るのは試練だけだ……

Jupyter & bash_kernel on Bash on Ubuntu on Windows (Anniversasy Update) - Anaconda (Linux版) 編

こちらの記事はAnniversasy Update 版のものです。 Creators Update 版は以下のリンク先で記事を作りました。

idwonder21.hatenablog.com

参照リンク先とほぼ同じ方法でインストールした。

qiita.com

自分の使い方では、複数のバージョンの python の使い方を分ける必要がないので pyenv を入れない。 Tensorflowも今のところいらない。

Anaconda

Bash on Ubuntu on Windows にインストールするのでLinuxインストーラをダウンロードする。 Anaconda をインストールしたところ、システム側よりもこちらの方が呼び出されるようになった。

Anaconda の気になる点は使わない package と 他の binary もインストールされる。 Qt などもあったような。詳細は問題が起きたら調べる。

逆に言えば、確認済みの環境を丸ごと持ってきているので動く可能性が高い。 Windows版ではRも入ったような気がするが、今回は入っていない模様。

$ wget <URL>/Anaconda3-*.sh
$ bash Anaconda3-*.sh

これでホームディレクトリに python が入り、.bashrc まで編集する。

重要:intel Math Kernel Library を無効にする

AnacondaはNumpyなどに使うBLAS APIintel Math Kernel Library (MKL) です。 Numpyなどを使わないコードは問題ありませんが、使うものはエラーを返し正常に動作しません。 Bash on Ubuntu on Windows に通常MKLは入っていないのでanacondaに明示的に使わないことを伝えます (他のBLAS APIを参照するようになると思われます。)

$ conda install nomkl
$ conda update --all

Jupyter

すんなり入ってくれないので、ひと手間必要。

zeromq 問題

通常のUbuntuでも zeromq 周りが同様の不具合があった気がします。

anaconda の場合、標準でインストールされるが Bash on Ubuntu on Windows ではされない。 システム Python を使用した場合も同じだが、zeromq が古いので、これを入れ替える。

$ conda install -c jzuhone zeromq=4.1.dev0

conda install のcオプションは CHANGE らしい。使用パッケージの変更?

  • jzuhone : contributor name?
  • zeromq : package

anaconda の以下のページにヒットした。 Zeromq :: Anaconda Cloud

本体のインストール

$ conda install jupyter # インストール
$ jupyter notebook      # jupyter の起動

OSで設定されている標準webブラウザが立ち上がり作業が開始できる状態になるが、 Bash on Ubuntu on Windows の場合、w3m (テキストベースのブラウザ)が起動する。 w3mでは殆どの場合、目的に合わないと思うので"Q"か"q"を入力してブラウザを閉じる。

Windows 本体にインストールしてある適当なブラウザで確認できたらJupyterを止める。 (Bash on Ubuntu on Windows のコンソールをアクティブにしてCtrl-Cを押せばJupyterを止められる)

w3m を起動しないようにする

以下のオプションを追加することでw3mは起動しない。

$ jupyter notebook --no-browser

しかし、いちいちオプションを追加して起動するのも面倒なので、設定ファイルを作成する。 以下のコマンドを打つと .jupyter/jupyter_notebook_config.py が作成される。

$ jupyter notebook --generate-config

適当なエディタで、jupyter_notebook_config.py を開くと、 コメントアウトされた設定から以下のようなオプションを探し、 アンコメントしてTrueからFalseへ変更する。

c.NotebookApp.open_browser = False

bash_kernel : jupyter

conda にてパッケージを検索したところ、どうも登録されていないようだ。 pypi 全てを網羅しているわけではないらしい。

一応 pip でインストールをしてみたところ稼働した。

$ pip install bash_kernel
$ python -m bash_kernel.install

この方法だと後に anaconda にパッケージが登録された時に衝突などしないのだろうか?

idwonder21.hatenablog.com

追記:Python kernel 限定のマジックでbash

以下の表記で bash kernel like なことができる。 当然ながら Windowsでは、bashのインストールが前提となる。 Rなど他のkernelでもできないかと思ったが駄目だった。標準カーネルなったら追加してくれるとかないかな。

%%bash
ls

以下の記事を参考にさせていただきました。

qiita.com