Kiroでスペック駆動開発というのと進めている。
テスト的に、画像認識を伴うアプリを作成していたところ、Pillow 10.1.0のインストールが失敗する事象が発生し、pyenvで解決したのでメモ。
起こったこと
requirements.txtでPillow=10.1.0指定を(Kiroが)している。
この状態で、venvで仮想環境を作成しpip install -r --requirements.txtを実行して依存関係をインストールしようとしたところ、Pirrowがインストール出来ない旨のエラーが発生した。
原因
Pirrow 10.1.0に、システム(mac)でインストールされているPython 3.13.5との互換性がなかった。
Q Dev CLIで調査したところ、3.12までしか対応していないらしい。
対応
pyenvを使用して、3.12系の最新である3.12.11をインストールし、これを使うように仮想環境を構成した。
これまで、pyenvを使わずやりくりしてきたのだが、そろそろ限界っぽいのでこの機に対応する。
1. pyenvのインストール
> brew install pyenv
2. .zshrcの編集
> vi ~/.zshrc
> echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
3. .zshrcの実行
> . ~/.zshrc
4. pyenvでPython 3.12をインストール
> pyenv insstall 3.12.11
5. 確認
> pyenv commands
> pyenv versions
> pyenv versions
* system (set by /Users/<ユーザー名>/.python-version)
3.12.11
3.13.5
> python --version
Python 3.13.5
6. 設定ファイル作成
> cd <プロジェクトルート>
> echo 3.12.11 > .python-version
7. 仮想環境作成
> python -m vevn venv
> source venv/bin/activate
7. 確認
> pyenv versions
system
* 3.12.11 (set by /Users/tnakatan/Documents/codes/gitlab/kiro-mahjong-calculator/.python-version)
3.13.5
> python --version
Python 3.12.11
8. 片付け
開発・テスト作業が終わったら、仮想環境を終了して終わり。
> deactivate
まとめ
一念発起してまじめにPython実行環境を整備すると、だいぶ楽になった。--break-system-packages
とか、いちいち実行したくないし。
なお、最近はRustベースのmiseというpyenv互換ツールもあるらしい。そのうち試してみよう。