Open3
mise+uvでpypy使うとエラーが出た

mise+uvはいいぞ
たくさんZennにも記事がそれぞれ上がっているので詳細は端折りますが、miseもuvもとてもモダンで使い心地のいい仮想環境ツールです。
uv、実はタスクランナーが無いんですが、miseは標準搭載していたりします。あとシンプルに開発環境が全て集約できて気持ちがいい。ちなみにmiseが公式で対応しています。

pypy使おうとするとエラーが出る
> python
mise WARN no precompiled python found for pypy@3.11, force mise to use a precompiled version with `mise settings set python.compile false`
python-build: definition not found: pypy@3.11
mise ERROR ~/Library/Caches/mise/python/pyenv/plugins/python-build/bin/python-build failed
python-build: definition not found: pypy@3.11
mise ERROR failed to install core:python@pypy@3.11
mise ERROR ~/Library/Caches/mise/python/pyenv/plugins/python-build/bin/python-build exited with non-zero status: exit code 2
mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information
fish: Unknown command: python
このエラーを見てまず思い浮かんだのはmiseがpypyに対応していないということです。それで諦めてcpythonにしようかとも思ったのですが、mise ls-remote python
をするとちゃんとpypyのディストリビューションも並んでいます。
どうやらmiseが対応していないわけではなさそう。

結論:.python-versionだけ気を配ってあげよう
よく見ると、python@pypy@3.11
というキメラな文字列があることが分かります。uv python pin pypy
をすると、.python-version内には以下のように記述されます。
pypy@3.11
これが災いのもとでした。pypy3.11
とアットマークを抜いてあげるだけで、uvもmiseもちゃんと認識してくれます。
ちなみに、そもそもmiseからバージョン管理を行い、mise sync python --uv
をすることでうまく同期してくれます。なんでここで詰まってたんだ...orz
作成者以外のコメントは許可されていません