WindowsにてWSL2を利用して、asdf+PoetryによるPython開発環境を構築する方法をまとめました。
環境構築の必要性と用語や、macOSでの構築は下記記事をご覧ください。
- WindowsのWSL2で環境構築を行うメリット
- 本記事で紹介する環境構築について
- 筆者環境
- 構築手順概要
- WSL2でのasdf+PoetryによるPython環境構築手順
- 3. VSCodeへの拡張機能(Remote Development)の追加
- 4. WSL2へのasdfのインストール
- 5. asdfによるPythonとPoetryのインストール
- WSL2の利用方法の補足事項
WindowsのWSL2で環境構築を行うメリット
開発経緯の違いにより、macOSとLinuxは親和性が高いものの、Windowsと前述のOSでは差異が大きく、OS特有の問題や利用ツールなどの考慮が必要です。
WSL2はWindows上でLinuxを稼働させることができる技術です。
WSL2内に環境構築を行うことで、Windows機であってもOS差異による問題を大きく軽減することができます。
また、WSL2内のフォルダやファイルは、WindowsのエクスプローラーやVSCodeから操作が可能です。
そのため、Linuxのコマンドライン操作に慣れていない人でも、比較的容易に利用することができます。
本記事で紹介する環境構築について
WindowsでWSL2をセットアップし、前回記事と同様のasdf+PoetryによるPython開発環境を構築します。
これにより、WindowsとmacOSおよびLinuxにおいて、同じ環境でPythonの利用と開発、共有が可能になります。
asdfとPoetryに関するコマンドや詳しい説明は割愛し、前回記事と差異がある箇所のみ補足する形とします。
必要に応じて、記事冒頭などのリンクからご参照ください。
筆者環境
WSL2の動作要件は、Windows11もしくはWindows 10 バージョン 2004 以上 (ビルド 19041 以上) です。
Homeエディションでも利用可能です。
構築手順概要
- WSL2のインストール
- WSL2の初期設定
- VSCodeへの拡張機能(Remote Development)の追加
- WSL2へのasdfのインストール
- asdfによるPythonとPoetryのインストール
VSCodeとターミナルを利用しますので、事前に下記から取得してインストールしてください。
※ターミナルはコマンドプロンプトやPowerShellでも代替可能です。
WSL2でのasdf+PoetryによるPython環境構築手順
1. WSL2のインストール
ターミナルを管理者として実行し、下記コマンドを実行します。*1
wsl --install
インストールが完了すると、再起動をする旨のメッセージが表示されるため、端末を再起動します。
2. WSL2の初期設定
1. WSL2の起動
ターミナルを開き、下記コマンドでWSL2を起動します。
wsl
2. WSL2のユーザー名とパスワード設定
WSL2が起動するとユーザー名とパスワード設定画面が表示されるため、任意のものを設定します。
次回以降はWSL2が起動すると、ここで作成したユーザーでWSL2に自動ログインされます。
設定したパスワードはコマンド実行時に必要となります。*2
3. WSL2の設定ファイル作成
任意のテキストエディタ(メモ帳でも可)で、下記内容を記載した「.wslconfig」ファイルを作成し、C:\Users\ {ユーザー名}直下に配置します。
[wsl2] dnsTunneling=true
※筆者環境ではWSL2内から名前解決ができずに後工程を実施できなかったため、本手順を追加しています。
4. WSL2の終了
ターミナルで下記コマンドを実行し、WSL2を一度終了します。
wsl --shutdown
3. VSCodeへの拡張機能(Remote Development)の追加
VSCodeでWSL2に接続するため、Remote Developmentの拡張機能を追加しておきます。
4. WSL2へのasdfのインストール
1. VSCodeでWSL2へ接続する
VSCodeを起動し、Ctrl+Shit+Pからコマンドパレット*3を開き、「WSLへの接続」を選択します。*4 自動でWSL2が起動し、接続された状態となります。
2. VSCodeでWSL2のホームディレクトリ(フォルダ)を開く
VSCodeの「フォルダーを開く」から/home/{WSL2のユーザー名}/を選択し、OKを選択します。
3. asdfのインストール
VSCodeのターミナル*5を開き、asdf公式ドキュメントのインストール手順に準じて作業を実施します。
依存関係のインストール
sudo apt install curl git
※WSL2のユーザーパスワード入力が求められます。
asdfのダウンロード
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.0
asdfのインストール
VSCodeで開いている/home/{WSL2ユーザー名}/内にある「.bashrc」を開き、下記を最下部に追記して保存します。
. "$HOME/.asdf/asdf.sh" . "$HOME/.asdf/completions/asdf.bash"
VSCodeのターミナルで下記コマンドを実行します。
source ~/.bashrc
asdfのインストール確認
VSCodeのターミナルで下記コマンドを実行し、asdfのバージョン情報が表示されることを確認します。
asdf version
バージョン情報が確認できれば、asdfのインストールは完了です。
5. asdfによるPythonとPoetryのインストール
1. 作業用フォルダの作成
今回は、/home/{WSL2ユーザー名}/develop/asdf_poetry_demo/ として作業用フォルダを作成します。 作業用フォルダを作成できたら、VSCodeの「フォルダーを開く」*6から作業用フォルダを開いておきます。
2. Pythonプラグインのインストール
公式ドキュメントに準じて、VSCodeのターミナルで下記を実行します。
依存関係のインストール
sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev curl \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
※WSL2のユーザーパスワード入力が求められます。
プラグインのインストール
asdf plugin-add python
3. Poetryプラグインのインストール
VSCodeのターミナルで下記を実行します。
asdf plugin-add poetry
4. PythonとPoetryのインストール
作業フォルダ内に「.tool-versions」ファイルを作成し、下記のように記載して保存します。
python 3.12.2 poetry 1.8.2
※バージョンは取得したいものに変更してください。
作業フォルダを開いたVSCodeのターミナルで、下記コマンドを実行します。
asdf install
これで、WSL2でのasdf+PoetryによるPython開発環境の構築が完了しました。
Poetryでの仮想環境のセットアップや環境複製は、前回記事の下記章をご覧ください。
- 5.Poetryによる仮想環境の作成
- asdf+Poetryによる環境複製
WSL2の利用方法の補足事項
作業用フォルダの作成場所
Linuxの各フォルダについて知識がない場合、作業用フォルダは、今回紹介した/home/{WSL2ユーザー名}/内に作成する形が良いでしょう。
特に/mnt/での作業は避けるようにしましょう。
WindowsのエクスプローラーによるWSL2内のファイル操作
WSL2セットアップ後は、エクスプローラーにLinuxのペンギンが表示されています。
ここからWSL2内のフォルダやファイルにアクセスできるため、WindowsとWSL2でファイルのやり取りが可能です。