WSLを使ってPythonの環境構築する方法を簡単に解説

# はじめに
環境を汚したくなかったので仮想環境でpythonを動かせるようにしました。
このトピックは多くの方が既に書かれていますが、私の環境下では検索上位の記事通りにやっても少しうまくいかなかったので、備忘録的な意味で記事にしています。

# 環境
- Windows10 education 64bit

#手順
## WSLの有効化
###1. "Windowsの機能の有効化または無効化"を開く
<img width="450" alt="Windowsの機能の有効化または無効化" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1294172/63fb2dd6-3d63-a179-4922-83274b3ed9f6.png">
左下の検索窓に機能て打てば出てきます。

###2. "Linux用Windowsサブシステム"にチェックを入れる
チェックを入れてください。
そんな項目ないよ:sweat_smile:って人は"Windows Subsystem for Linux"になってるかもしれないです。
![Linux用Windowsサブシステム](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1294172/274f0078-03aa-5d29-0384-2335ee6b18a1.png)
チェックを入れてOKを押すと必要なもののインストールが始まります。
インストールが終わったら再起動しましょう。

## Ubuntuの導入とセットアップ
### 1. Ubuntuのインストール
Microsoft storeにてubuntuと検索します。
<img width="600" alt="microsoftstore" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1294172/f7a2c0a3-c86a-d49e-955f-adbc1ec24814.png">
何個かでてきますが今回は"Ubuntu 18.04 LTS"をインストールします。20.04の方でも別に大丈夫です。（多分）
<img width="600" alt="ubuntu" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1294172/b1e9e82f-3bc1-e0f0-6871-aacad6534b91.png">

### 2. Ubuntuを起動
インストールできたら起動してください。
起動すると最初に色々インストールがされた後、ユーザー名とパスワードを設定するように言われるので従います。

### 3. パッケージの更新
以下のコマンドを実行し、パッケージを更新します。
ちなみに$マークは入力開始の目印なので、コピペするときは外してください。

```terminal
$ sudo apt update
$ sudo apt upgrade -y
```

## Pythonの導入
### 1. pyenvを入れる
pyenvとはpythonのバージョン管理ツールです。
世界的にはvirtualenvの方がよく使われているらしいですが気にしません。（参考：[pyenvが必要かどうかフローチャート](https://qiita.com/shibukawa/items/0daab479a2fd2cb8a0e7)）
そもそも趣味レベルにおいてバージョンの切り替えなんて基本しないので、必要ない気もするんですが、初心者向けの本やサイトを見ると何故か入れさせたがるので、まぁ一応入れることにします。

まずビルド環境を整えます。[Suggested build environment](https://github.com/pyenv/pyenv/wiki#suggested-build-environment)に従い、以下のコマンドを実行します。
改行されてますが一行扱いなのでまとめてコピーして貼り付けてください。

``` terminal
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
```
途中で続行するか聞かれるので、yを押して続行しましょう。

次にgitをインストールします。
pyenvはパッケージでは提供されていないので、githubから取ってくる必要があります。以下のコマンドを実行してgitが使えるようにしましょう。

``` terminal
$ sudo apt-get install git
```

最後にpyenvをインストールします。

```terminal
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
```

### 2. pyenvの設定

必要な設定を~/.profileに追加します。~/.bashrcに記述する派の人もいますが、私にはいまいち違いが分かりません:innocent:
以下のコマンドを実行します。

```terminal
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
$ echo 'eval "$(pyenv init --path)"' >> ~/.profile
```
設定が追加できたら、以下のコマンドを実行して読み込みましょう。

```terminal
$ source ~/.profile
```
以下のコマンドを実行して、インストール可能なバージョンの一覧が表示されればOKです。

```terminal
$ pyenv install -list
```

###3. Pythonのインストール
今回はPython 3.9.5を入れます。

```terminal
$ pyenv install 3.9.5
```
続いて、今インストールした3.9.5に切り替えます。

```terminal
$ pyenv global 3.9.5
```

下記のコマンドを実行して切り替わって入ればOKです。

```terminal
$ python -V
```

#おまけ
##よく使うライブラリの導入
###1. pipのインストール
pipはpythonのパッケージを管理するツールです。
pythonを導入すると一緒についてくるので、今回はわざわざ何かする必要はありません。
下記のコマンドでバージョンが確認できます。

```terminal
$ pip -V
```

もし入っていない場合は下記のコマンドを実行してください。

```terminal
$ sudo apt-get install python3-pip
```

###2. ライブラリの導入
今回は私がよく使っているnumpy,pandas,matplotlibを入れます。

```terminal
$ pip install numpy
$ pip install pandas
$ pip install matplotlib
```

#終わりに
少しでも参考になれば幸いです！