💡

WSL2+pyenv+PoetryでPython開発環境構築

2023/03/24に公開

はじめに

この記事は、WindowsへWSL2(Ubuntu)をインストールし、pythonで開発ができるようになるまでの手順を個人的な備忘録としてまとめたものです。
WSLやUbuntu、pyenvその他のアップデートおよび仕様変更によって将来的にこの手順が使用できなくなる可能性があります。(記.2023/3/25)

Pyenvとは?

pyenvとは、pythonのバージョン管理ツールで、これを導入することによって「プロジェクトによってpythonのバージョンを切り替えたい……」というような時に、逐一pythonをアンインストールしたり環境変数を手動で書き換えたりする必要がなくなります。

Poetryとは?

Poetryとは、pythonのパッケージマネージャーで、これを使用することによってプロジェクトごとにパッケージを管理できるようになります。(JavaScriptのnpmやRustのcargoのpython版といった感じです)
venv+pipとほぼ同じことができる、という認識で問題ないと思います。

前提条件

  • OSがWindows10または11である

WSL2のインストール

  1. Windows PowerShellを管理者権限で起動(右クリック→管理者として実行)
  2. 以下のコマンドを実行し、WSL2をインストール(かなり時間がかかります)
wsl --install
  1. 以下のコマンドを実行し、WSL2を最新版にアップデート(任意)
wsl --update
  1. インストールが正常に終了した旨の表示が確認できれば、PCを再起動

以上でWSL2およびUbuntuのインストールは終了です。WSLのinstallコマンドは特に指定がなければLinuxディストリビューションとしてUbuntuをインストールします。以降はUbuntu上で操作を行います。
要するにUbuntuという名前のLinux系OSとそれをWindowsの中で動かすための外箱としてWSL2をインストールしたよ、というレベルの認識で大丈夫です。

Ubuntuの初期設定

  1. 「最近追加されたアプリ」などからUbuntuを探し、起動(PC再起動後に自動で起動する場合もあります)
  2. Enter new UNIX username:と表示されたら、Ubuntuで使用するユーザー名を入力(初回起動時はメッセージが表示されるまでしばらくかかります)
  3. New password:と表示されるので、パスワードを入力
  4. Retype new password:と表示されるので、パスワードを再度入力

環境によってはUbuntuの再起動が必要な場合がありますが、username@COMPUTER:~$のような表示が確認できればUbuntuの初期設定は終了です。
パスワードの入力の際は入力している文字が表示されませんが、きちんと入力されています。タイプミスには気をつけましょう。また、ここで入力したパスワードを忘れてしまうとUbuntuの中に入れなくなるため、絶対に忘れないようにしてください。

pyenvを導入する

  1. Ubuntuを開いて以下のコマンドを実行し、Ubuntuを最新版にアップデート(任意)
    途中、初期設定時に設定したパスワードが聞かれたり、続けますか?yes/noのようなことを聞かれたりしますが、適宜入力してEnterキーを押してください。かなり時間がかかると思います。
sudo apt update
sudo apt upgrade
  1. 以下のコマンドを実行し、pyenvの依存関係を導入
sudo apt install libssl-dev libffi-dev libncurses5-dev zlib1g zlib1g-dev libreadline-dev libbz2-dev libsqlite3-dev make gcc
  1. 以下のコマンドを実行し、pyenvを導入
curl https://pyenv.run | bash
  1. 以下のコマンドを実行し、環境変数を設定
echo '' >> ~/.bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
  1. Ubuntuを再起動
  2. 以下のコマンドを実行し、導入できているかどうか確認
pyenv --version

pyenv 2.3.16のようにバージョンが表示されれば正しく導入できています。

pythonの環境を整える

pyenvからインストールできるpythonのバージョンは以下のコマンドで確認できます。

pyenv install --list

また、すでにインストール済みのpythonのバージョンは以下のコマンドで確認できます。systemというのはpyenvではなくOS側でインストールされたpythonのバージョンになります。

pyenv versions
  1. 以下のコマンドを実行し、pythonをインストール
pyenv install <使いたいpythonのバージョン>
  1. 以下のコマンドを実行し、今インストールしたpythonのバージョンを使用するように指定
pyenv global <使いたいpythonのバージョン>

グローバルではなくローカルで設定したい場合は以下のコマンドを実行

pyenv local <使いたいpythonのバージョン>
  1. 以下のコマンドを実行し、pythonのバージョンを確認
pyenv version

<使いたいpythonのバージョン> (set by /home/<ユーザー名>/.pyenv/version)のようにバージョンが表示されれば正しく設定できています。これで好きなバージョンのpythonが使えるようになっていると思います。

Poetryを導入する

  1. 以下のコマンドを実行し、Poetryを導入
curl -sSL https://install.python-poetry.org | python3 -
  1. Ubuntuを再起動
  2. 以下のコマンドを実行し、導入できているかどうか確認
poetry --version

Poetry (version 1.4.1)のようにバージョンが表示されれば正しく設定できています。以上でpyenvとPoetryを使用したpythonの開発環境構築は完了です。お疲れ様でした。

おまけ: よく使うPoetryコマンド

  • 新しいpythonプロジェクトを作成
poetry new <新規プロジェクト名>
  • 依存パッケージの追加
poetry add <パッケージ名>
  • 依存関係を全てインストール
poetry install
  • 仮想環境を立てずにpythonファイルを実行
poetry run python <実行するファイルの名前>
  • 仮想環境を立ててpythonファイルを実行
poetry shell
python <実行するファイルの名前>
  • 仮想環境から出る
exit

Discussion