Windows11+WSL2+VSCode+Python3.10.1


Windows11にVSCode, WSL2(Ubuntu), Python3.10.1(Ubuntu内)をインストールしてハローワールド実行までの備忘録.

#WSLのインストール


https://docs.microsoft.com/ja-jp/windows/wsl/install

https://docs.microsoft.com/en-us/windows/wsl/install


- PowerShellを管理者で起動

- インストールコマンドを実行
下記コマンドによりUbuntuがインストールされる．

```
wsl --install
```
    
インストールできるディストリビューションの検索やディストリビューションの指定をする場合は下記 

```
wsl --list --online

wsl --install -d <Distribution Name>
```

インストールが完了すると再起動を求められるので再起動する
![スクリーンショット 2021-12-29 145653.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45202/8e4b3f9f-1dfc-0235-907b-8f1dd1e9263d.png)



- Ubuntuの初期設定

再起動が終わるとUbuntuのターミナルが立ち上がってユーザー名とパスワード設定が求められるので設定する．(立ち上がらない場合はスタートメニューからUbuntuを開く)

https://docs.microsoft.com/ja-jp/windows/wsl/setup/environment#set-up-your-linux-username-and-password

https://docs.microsoft.com/ja-jp/windows/terminal/troubleshooting

![スクリーンショット 2021-12-29 150247.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45202/2fbbd483-035a-1cc5-1569-2dcf6051ad03.png)

設定後，下記コマンドを実施して更新する

```
sudo apt update && sudo apt upgrade
```

- 初期化とスナップショット

WindowsのスタートメニューからUbuntuのアイコンを右クリック -> アプリの設定 -> リセットでUbuntuの初期化が出来る.
スナップショットのエクスポート，インポートは下記参照．

https://docs.microsoft.com/ja-jp/windows/wsl/basic-commands#export-a-distribution-to-a-tar-file


# Windows Terminal
- Windows TerminalでUbuntuを開いたときの開始位置をホームに変更する

https://docs.microsoft.com/ja-jp/windows/wsl/basic-commands#change-directory-to-home

ターミナルを開いたときの開始位置がホームディレクトリではないので設定を変更する．
Windows Terminalの設定から左側のUbuntuを選択すると初期状態では画像のようになっている．

![スクリーンショット 2021-12-29 155319.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45202/ae8527a2-f438-c716-7d0e-e5bd1f3d1868.png)

ここで，コマンドラインの項目にオプションに~を追加して保存する．これでターミナルを開いたときの開始位置がホームディレクトリになる．

```
wsl.exe -d Ubuntu
↓以下に変更
wsl.exe ~ -d Ubuntu
```

# VSCodeとRemote WSL

下記ページを参考にVSCodeをインストールして起動後，拡張機能(ctrl + shift + x)でRemote Developmentをインストール
Remote Developmentは(Remote-SSH, Remote-Containers, Remote-WSLの拡張のバンドルとなってる)

https://docs.microsoft.com/ja-jp/windows/wsl/tutorials/wsl-vscode

Ubuntuのターミナルから下記を実行することでWSLディストリビューションからプロジェクトを開くことができる．

```
code .
```

# Python

https://www.python.jp/install/ubuntu/index.html

上記ページを参考に必要なツール類をインストール

```
sudo apt install build-essential libbz2-dev libdb-dev \
  libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
  libncursesw5-dev libsqlite3-dev libssl-dev \
  zlib1g-dev uuid-dev tk-dev
```

python 3.10.1をインストール

```
wget https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tgz
tar zxvf Python-3.10.1.tgz
cd Python-3.10.1/
./configure --prefix=${HOME}/.local/python
make
make install
```

.bashrcにエイリアスを追加して反映する

```
alias python=${HOME}/.local/python/bin/python3
alias pip=${HOME}/.local/python/bin/pip3
```

# VSCode + Python仮想環境

https://docs.microsoft.com/ja-jp/windows/python/web-frameworks

仮想環境に切り替えてWSL-Remoteを開く

```
mkdir -p ~/py_work/HelloWorld
cd ~/py_work/HelloWorld
python -m venv .venv (仮想環境作成)

. .venv/bin/activate (仮想環境へ切り替え)

touch test.py
code .
```

VSCodeでtest.pyを開いてハローワールドを入力．ファイルを右クリックしてターミナルでPythonファイルを実行を選択．ターミナルに"Hello World"が表示されればヨシ．

![スクリーンショット 2021-12-29 233603.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45202/5e209b9f-34c5-e9af-8f17-bd2d72388915.png)

仮想環境の終了はターミナルで下記コマンドを実施する

```
deactivate
```