ハルの読書と勉強録

読書の記録や勉強の覚書です。

WSL2でのasdf+Poetryを使ったPython環境構築

WindowsにてWSL2を利用して、asdf+PoetryによるPython開発環境を構築する方法をまとめました。

環境構築の必要性と用語や、macOSでの構築は下記記事をご覧ください。

WindowsのWSL2で環境構築を行うメリット

開発経緯の違いにより、macOSLinuxは親和性が高いものの、Windowsと前述のOSでは差異が大きく、OS特有の問題や利用ツールなどの考慮が必要です。

WSL2はWindows上でLinuxを稼働させることができる技術です。

WSL2内に環境構築を行うことで、Windows機であってもOS差異による問題を大きく軽減することができます。

また、WSL2内のフォルダやファイルは、WindowsエクスプローラーやVSCodeから操作が可能です。

そのため、Linuxコマンドライン操作に慣れていない人でも、比較的容易に利用することができます。

本記事で紹介する環境構築について

WindowsでWSL2をセットアップし、前回記事と同様のasdf+PoetryによるPython開発環境を構築します。

これにより、WindowsmacOSおよびLinuxにおいて、同じ環境でPythonの利用と開発、共有が可能になります。

asdfとPoetryに関するコマンドや詳しい説明は割愛し、前回記事と差異がある箇所のみ補足する形とします。

必要に応じて、記事冒頭などのリンクからご参照ください。

筆者環境

  • OS: Windows 11 Pro(23H2)
  • CPU:11th Gen Intel(R) Core(TM) i7-11800H
  • メモリ:16GB

WSL2の動作要件は、Windows11もしくはWindows 10 バージョン 2004 以上 (ビルド 19041 以上) です。

Homeエディションでも利用可能です。

構築手順概要

  1. WSL2のインストール
  2. WSL2の初期設定
  3. VSCodeへの拡張機能(Remote Development)の追加
  4. WSL2へのasdfのインストール
  5. asdfによるPythonとPoetryのインストール

VSCodeとターミナルを利用しますので、事前に下記から取得してインストールしてください。

code.visualstudio.com

www.microsoft.com

※ターミナルはコマンドプロンプトPowerShellでも代替可能です。

WSL2でのasdf+PoetryによるPython環境構築手順

1. WSL2のインストール

ターミナルを管理者として実行し、下記コマンドを実行します。*1

wsl --install

インストールが完了すると、再起動をする旨のメッセージが表示されるため、端末を再起動します。

WSL2のインストール完了画面

2. WSL2の初期設定

1. WSL2の起動

ターミナルを開き、下記コマンドでWSL2を起動します。

wsl
2. WSL2のユーザー名とパスワード設定

WSL2が起動するとユーザー名とパスワード設定画面が表示されるため、任意のものを設定します。

WSL2のユーザー名とパスワードの設定完了画面

次回以降はWSL2が起動すると、ここで作成したユーザーでWSL2に自動ログインされます。

設定したパスワードはコマンド実行時に必要となります。*2

3. WSL2の設定ファイル作成

任意のテキストエディタ(メモ帳でも可)で、下記内容を記載した「.wslconfig」ファイルを作成し、C:\Users\ {ユーザー名}直下に配置します。

[wsl2]
dnsTunneling=true

※筆者環境ではWSL2内から名前解決ができずに後工程を実施できなかったため、本手順を追加しています。

learn.microsoft.com

4. WSL2の終了

ターミナルで下記コマンドを実行し、WSL2を一度終了します。

wsl --shutdown

3. VSCodeへの拡張機能(Remote Development)の追加

VSCodeでWSL2に接続するため、Remote Developmentの拡張機能を追加しておきます。

VSCode拡張機能タブから追加してください。

Remoete Development拡張機能

4. WSL2へのasdfのインストール

1. VSCodeでWSL2へ接続する

VSCodeを起動し、Ctrl+Shit+Pからコマンドパレット*3を開き、「WSLへの接続」を選択します。*4

WSLへの接続
自動でWSL2が起動し、接続された状態となります。

2. VSCodeでWSL2のホームディレクトリ(フォルダ)を開く

VSCodeの「フォルダーを開く」から/home/{WSL2のユーザー名}/を選択し、OKを選択します。

/home/{WSL2のユーザー名}/の選択

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"
    

    .bashrcへの追記

    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でファイルのやり取りが可能です。

エクスプローラーに表示されるペンギンアイコン

learn.microsoft.com

*1:ターミナルを右クリックし、「管理者として実行」を選択します。

*2:設定によりコマンド実行時のパスワード入力を省略することが可能です。また、パスワード失念時は再設定が可能です。

*3:VSCodeの様々な機能を利用できる画面です。

*4:コマンドパレットで「WSL」と入力すると候補に出てきます。

*5:日本語キーボードの場合、Ctrl+@がショートカットキーです。

*6:Ctrl+K→Ctrl+Oがショートカットキーです。