« ThinkPad E440でNEXUS 7 2013 LTEモデルのBluetoothを介してテザリングする(Windows 10 + Android 6 編) | トップページ | ScrapBookのリンク静的HTMLファイル作成スクリプト »

2016.09.07

Bash on Ubuntu on Windowsにpyenvとanacondaをインストール

Windows 10 Anniversary Updateが配信されて、Bash on Ubuntu on Windows(あるいはWindows Subsystem for Linux(WSL))をインストールされた方が多いのではないかと思います。
当ブログでは、Insider Previewで試した結果を以下の記事に書いております。
Windows 10 Pro Insider Preview Build 14316を入れてみた
Bash on Ubuntu on Windows -- Build 14342
Bash on Ubuntu on Windows とX Windowの組み合わせで日本語表示と日本語入力
いわゆるLAMP (Linux, Apache, MySQL, PHP)も動作しますし、まだβ版の位置づけではありますが、実用的な領域に達しつつあります。

WSL+Ubuntuでは数値計算等に関連したパッケージを導入することができます。
Cygwin絶対殺すマン ~物理のオタクがWindows Subsystem for Linuxで数値計算できるようになるまで~
には、WSL+Ubuntuの環境におけるPython等の導入手順が記載されており、大変参考になりました。

データサイエンティストを目指す人のpython環境構築 2016
には、Python + Anacondaの導入過程が記載されており、やはり大変参考になります。

ありがとうございます。

数値計算やデータ処理をpythonで行おうとする場合、複数のバージョンのpythonを導入したいことがあります。そのために導入すると便利なツールがpyenvです。今回、pyenv + Anacondaを導入してみましたので、自分で行った手順を記載しておきます。ディレクトリ指定など、標準的な指定とします。

pyenv導入


$ cd ~
$ git clone https://github.com/yyuu/pyenv.git .pyenv/
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc

pyenvを使ってanadondaをインストール
インストールできるパッケージを表示して、表示されたリストから選択したパッケージをインストールします。


$ pyenv install -l
$ pyenv install anaconda2-4.1.0

pyenvを使ってパッケージを導入するほか、自分でインストールしてシンボリックリンクを張ることもできます。こちらの方法で最新のバージョンのAnacondaを導入できました。
DOWNLOAD ANACONDAからLinux版をダウンロードします。


$ cd ~
$ bash Anaconda3-4.1.1-Linux-x86_64.sh

すると、利用許諾を求められるのでyes、PATHを追加するか聞いてくるのでnoと回答します。
要するに、~/.pyenv/versionsにpython環境があればいいので、先ほどインストールしたディレクトリにシンボリックリンクを張れば良いです。

$ cd ~/.pyenv/versions/
$ ln -s ~/anaconda3 ./anaconda3-4.1.1
$ cd ~
$ pyenv rehash

私は、python環境の切り替えはpyenv、updateやupgradeのようなパッケージ管理はcondaやpipと使い分けてます。
例えば、以下の様な感じでしょうか。


# ローカル環境(実行ディレクトリ)内での切り替え
$ pyenv local anaconda3-4.1.1
# グローバル環境での切り替え
$ pyenv global system

localを指定した場合、実行ディレクトリに.python-versionというファイルができて、このファイルでpythonのバージョンを指定しています。
globalを指定した場合、~/.pyenv/versionファイルでpythonのバージョンが指定されます。
ただし、上のサイトにも記載されているとおり、WSLは、現時点でMKLに対応できていませんから、anaconda環境に切り替えた後、condaコマンドで、nomklを導入する必要があります。

$ conda install nomkl

とします。
変にアップデートするとmkl版を入れようとするので気をつけましょう。

jupyterも動きはします。
jupyter notebookを実行して、WindowsのWebブラウザを立ち上げて、http://localhost:8888/を指定します。動きはするのですが、ipynbファイルを読み込むと、カーネルが再起動を繰り返します。

以上のとおり、不完全な点はみられるものの、おおむね動きつつあります。

(補足 OS X + homebrewの場合)
homebrewの場合、brewコマンドでpyenvをインストールできます。後は、Linux版と変わりないです。
brew doctorを実行すると、システム領域又はHomebrewディレクトリの外にconfigがあるよ、と警告が出ますが、私の環境ではほっといても実害はないように思います。
(~/.pyenv/shims/配下にいくつかのconfig scriptsがあると警告される)

|

« ThinkPad E440でNEXUS 7 2013 LTEモデルのBluetoothを介してテザリングする(Windows 10 + Android 6 編) | トップページ | ScrapBookのリンク静的HTMLファイル作成スクリプト »

パソコン・インターネット」カテゴリの記事

コメント

cygwinと比べて、使い勝手はどうでしょうか。

投稿: HAT | 2016.09.09 02:35

HATさん
ご無沙汰しております。
WSLの方ですが、Xでemacsが動かない、Windowsから見えているネットワークドライブが見えない、など、色々見ていくとまだまだです。ただ、ubuntuで動くパッケージがそこそこ動く点は楽に感じます。

Windowsとシームレスに、ということだと(少なくとも現時点では)cygwinの方がいいでしょうね。WSLは、今のところ閉じた環境で使うもの、という印象です。

投稿: tonop | 2016.09.11 10:03

tonopさん

こんにちは, このページを参考にwindows bashにpyenvとanacondaを導入いたしました.
jupyter notebook
を立ち上げると, 下のリンクにあるようなコードが表示されてしまいます.
http://stackoverflow.com/questions/33890427/issue-in-setting-up-spark-1-5-and-ipython-missing-ipython-notebook-config-py

>Jupyter Notebook requires JavaScript.

となって止まってしまいます. 同じ症状にはなりませんか?また解決法はご存知でしょうか?
よろしくお願いいたします.

投稿: T.J. | 2016.09.25 19:59

T.J.さん

コメントありがとうございます。
テキストベースのブラウザが起動しているのだと思います。
IEでもFirefoxでもいいので、JavaScriptが動くブラウザを別途起動して
http://localhost:8888/
でnotebookが見られるようになりませんか。
もっとも、私の環境ではカーネルが再起動を繰り返してしまうので、正常に動いているわけではなさそうです。
(ターミナルのメッセージを見ていると、いろいろエラーを吐いている様子は分かる…)

以上、よろしくお願いいたします。

投稿: tonop | 2016.10.01 15:17

tonopさん

ご返信ありがとうございます.
localhost:8888でJupyterを起動することができました.
助かりました, ありがとうございます!

また, これはBUWとは関係がありませんが, Jupuyterの設定が
Python3ではなくPython[root]となってしまいます.
これはAnaconda自体の不具合みたいですね…

投稿: T.J. | 2016.10.05 22:46

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1024423/67357775

この記事へのトラックバック一覧です: Bash on Ubuntu on Windowsにpyenvとanacondaをインストール:

« ThinkPad E440でNEXUS 7 2013 LTEモデルのBluetoothを介してテザリングする(Windows 10 + Android 6 編) | トップページ | ScrapBookのリンク静的HTMLファイル作成スクリプト »