WSL2(Ubuntu)+Miniconda+VSCodeでDjangoの開発環境構築メモ

WSL2(Ubuntu)でDjangoの開発環境を作ったときの手順をまとめました。

# 目次
- [環境](#環境)
- [Step1 WSL2のインストール](#step1-wsl2のインストール)
- [Step2 Minicondaのインストール](#step2-minicondaのインストール)
- [Step3 仮想環境の作成](#step3-仮想環境の作成)
- [Step4 Djangoの起動](#step4-djangoの起動)
- [Step5 VSCodeのインストール](#step5-vscodeのインストール)

# 環境
- Windows 10 Home バージョン20H2
- WSL2 Ubuntu 20.04 LTS
- Conda 4.10.3
- Python 3.9.6
- Django 3.2.5
- VSCode バージョン1.58.2

# Step1 WSL2のインストール

[こちらのページ](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10)に詳しい手順が載っています。

### 1. WSLの有効化
管理者としてPowerShellを開き、以下のコマンドを実行します。

```PowerShell:PowerShell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```

### 2. 仮想マシンプラットフォームの有効化
こちらも管理者権限で実行します。

```PowerShell:PowerShell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
```

### 3. マシンの再起動
PCを再起動します。
  
### 4. Linuxカーネルのインストール
[こちら](https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel)からインストールできます。
  
### 5. WSLのバージョンを2に設定
PowerShellで実行します。

```PowerShell:PowerShell
wsl --set-default-version 2
```
  
### 6. Ubuntu 20.04 LTSのインストール
Microsoft Storeで「WSL」と検索すると出てきます。
インストール後、スタートメニューのアイコンから起動します。
初回起動時にユーザIDとパスワードの設定を行います。  

以上で、WSL2のインストールは完了です。
  
# Step2 Minicondaのインストール
[こちらの記事](https://qiita.com/ShuntaIto/items/bb6793c0bbf2ed4e53de)を参考にしました。
  
### 1. インストール用シェルをダウンロード
作業用ディレクトリを作成したうえで行います。

```bash:bash
$ cd ~
$ mkdir tmp
$ cd tmp
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
```
  
### 2. インストール用シェルを実行

```bash:bash
$ bash Miniconda3-latest-Linux-x86_64.sh
```
インストール手順の途中でいくつか質問されます。
内容をざっと確認し、`yes`で回答し進めます。  

### 3. パスを通す
`.bashrc`を再読み込みします。

```bash:bash
$ source ~/.bashrc
```

### 4. [conda-forge](https://conda-forge.org/)を唯一のchannelに設定する

```bash:bash
$ conda config --add channels conda-forge
$ conda config --remove channels defaults
$ conda update conda
$ conda update --all
```
この手順を行った理由については、[こちらの記事](https://qiita.com/kimisyo/items/986802ea52974b92df27)も参考になります。  

# Step3 condaで仮想環境を作成
仮想環境名は`test-env`としておきます。

```bash:bash
$ conda create -n test-env python django
```

仮想環境の作成場所を聞かれるので、`y`を入力します。

```bash:bash
  environment location: /home/<username>/miniconda3/envs/test-env

Proceed ([y]/n)? 
```

作成したら、`conda activate`コマンドで有効化します。

```bash:bash
$ conda activate test-env
```

プロンプトの先頭に`(仮想環境名)`が表示されれば成功です。  
  
Python、Djangoのバージョンは特に指定しませんでしたが、最新バージョンがインストールされました。
必要に応じてバージョンを指定してください。

```bash:bash
$ python -V
Python 3.9.6
$ conda list | grep django
django                    3.2.5              pyhd8ed1ab_0    conda-forge
```

# Step4 Django開発用サーバの起動確認

### 1. Djangoプロジェクトの作成
ここではホームディレクトリの下に作業用ディレクトリを作成します。

```bash:bash
$ cd ~
$ mkdir study_django
$ cd study_django
```

作業用ディレクトリに移動したら、`django-admin`コマンドでプロジェクトを作成します。
ここではプロジェクト名を`testproject`としておきます。

```bash:bash
$ django-admin startproject testproject
```

### 2. Djangoの開発用サーバを起動

`manage.py`を使って、開発用サーバを起動します。

```bash:bash
$ cd testproject
$ python manage.py runserver
```

### 3. 接続できるか確認
開発用サーバを起動したら、ブラウザからアクセスできるか確認します。
Windows側でブラウザを起動し、`https://127.0.0.1:8000`にアクセスします。  
「The insgall worked succesfully! Congratulations!」の画面が表示されれば成功です。

# Step5 VSCodeのインストール
[こちらの記事](https://qiita.com/_masa_u/items/d3c1fa7898b0783bc3ed)を参考にしました。

### 1. VSCodeをインストール
[公式サイト](https://code.visualstudio.com/)からインストーラをダウンロードし、実行します。
Windows側にインストールします。

### 2. 拡張機能をインストール
VSCodeを起動し、拡張機能で「WSL」と検索します。
「Remote-WSL」を開き、インストールします。

### 3. WSL側からVSCodeを起動する
Ubuntu側で、開きたいディレクトリに移動し、`code`コマンドでVSCodeを起動します。

```bash:bash
$ cd ~/testproject
$ code .
```
初回起動には時間がかかりますが、以降はVSCode側からWSLに接続できるようになります。  
拡張機能もWSL側にインストールすれば機能します。  
  
以上で、WSLとMinicondaとVSCodeを使ったDjango開発環境がローカルに構築されました。