Windows10のUbuntuでpython環境構築

これまで使用していたノートPC(マウスコンピューターLuvBook S)の基板が逝ってしまい、

起動しなくなってしまったので、新たに中古でThinkPad X230を購入してセットアップをしています。

LuvBookは基板以外は生きていたので、メモリ4GB×2をX230に移動しています。

それから、SSD 128GBからデータを救出した後、フォーマットし学生版のWindows 10 Educationをインストールしました。

また、せっかくWin10にしたので、python開発環境をWindows Subsystem for Linux(WSL)を用いUbuntuで構築することにしました。

以下に構築の手順を記載します。

1. [コントロールパネル] – [Windowsのプログラムと機能] – [Windowsの機能の有効化または無効化] で

Windows Subsystem for Linux」へチェックを入れ、再起動する

2. Microsoft StoreからUbuntuを検索してインストール

3. Ubuntuを初回起動すると、ユーザー名・パスワードを聞かれ、インストール作業が行われる。

4. 環境の準備

 $ sudo apt install -y build-essential

 $ sudo apt install -y libsm6

 $ sudo apt install -y libxrender1

5. pyenvのインストール

 $ 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

6. anacondaのインストール

 $ pyenv install -l | grep anaconda

 でバージョン確認。私はpython 3系しか使うつもりがなかったので、そっちだけインストールしました。

 $ pyenv install anaconda3-5.0.1

 $ pyenv rehash

 $ pyenv global anaconda3-5.0.1

 $ echo 'export PATH="$PYENV_ROOT/versions/anaconda3-5.0.1/bin/:$PATH"' >> ~/.bashrc

 $ source ~/.bashrc

7. 各ライブラリのインストール

今回はseaborn、xgboost、plotly、pydotplus, graphvizをインストールします。

 $ pip install seaborn

 $ git clone --recursive https://github.com/dmlc/xgboost

 $ cd xgboost

 $ make -j4

 $ cd python-package

 $ python setup.py install

 $ pip install pydotplus

 $ sudo apt install graphviz

(必要であれば,conda update graphvizもやっておくと良いです.)

【2017/11/28追記】

ついでにTensorFlowもインストールしておきます。

今回はGPUも無かったのでCPUのみのバージョンをインストールします。

python3しかインストールしていないのでpip直叩きしましたが、インストール後にワーニングが出ました。

 $ sudo pip install tensorflow

 $ python

 >>> import tensorflow as tf

 /home/demio/.pyenv/versions/anaconda3-5.0.1/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: compiletime version 3.5 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6

return f(*args, **kwds)

どうやらtensorflow1.4はまだpython3.6に正式対応していないようです。

pythonのバージョンを3.5に落とすか、インストールするtensorflowのバージョンを1.3.0に落としておく必要があります。

 $ sudo pip install tensorflow==1.3.0

参考:

Installing TensorFlow on Ubuntu

Creating a specific 3.6 binary for Linux #14182 tensorflow/tensorflow GitHub

8. jupyter notebookの設定

 $ python

 > from IPython.lib import passwd

 > passwd()

でパスワードのハッシュ値をコピーしておく。

 $ cd

 $ jupyter notebook --generate-config

 $ sudo nano /.jupyter/jupyter_notebook_config.py

でコンフィグファイルを生成し、末尾に以下を追記

 c.IPKernelApp.pylab = 'inline'

 c.NotebookApp.ip = '*'

 c.NotebookApp.open_browser = False

 c.NotebookApp.port = 12345

 c.NotebookApp.password = u'ハッシュ値'

jupyter notebookを再起動

 $ jupyter notebook &

Windows10のウェブブラウザからhttp://localhost:12345にアクセスして見れるかチェック。

9. SSHサーバの立ち上げ

 Windows10のSSHサービス停止

 「サービス」からSSH Server Broker, SSH Server Proxyを停止(無効)

 Windowsファイアウォールの受信の規則のSSH Server Proxy Serviceを無効にし、

 新しい規則でTCP port22を有効にする。

ここからUbuntuの設定

 $ cd /etc/ssh

 $ sudo ssh-keygen -t rsa -N '' -f ssh_host_rsa_key

 $ sudo nano /etc/ssh/sshd_config

を開いて、

 Hostkey /etc/ssh/ssh_host_dsa/key

 Hostkey /etc/ssh/ssh_host_ecdsa/key

 Hostkey /etc/ssh/ssh_host_ed25519/key

コメントアウト

 UsePrivilegeSeparation を no

 PasswordAuthentication を yes

に修正して保存。

 $ sudo /etc/init.d/ssh restart

で再起動すればOK

Windows10からWinSCPteraterm等でlocalhost:22にアクセスできるか確認。

参考:

UbuntuをWindows 10(Fall Creators Update)にインストールしてみた

UbuntuServer 16.04 LTSでJupyter Notebookを使った機械学習環境を手っ取り早く作る手順 with anaconda

Windows10 BashへのSSH接続メモ