uvを使いたい
poetry+pyenvでやっていた管理をuvだけで置き換えられそう。雑メモを残していく。uvのキャッチアップついでに復習や補填を兼ねる。
We first released uv in February as a drop-in replacement for common pip workflows.
Today, we're announcing a series of features that extend uv beyond a pip alternative, and into an end-to-end solution for managing Python projects, command-line tools, single-file scripts, and even Python itself.
実際に導入してみる。READMEを参考にしてパッケージ管理やプロジェクト単位でランタイムの切り替えができることを確認した。
自分のローカルPC全体だと3.11だったが、uvプロジェクトだと3.12の環境で実行できた。
あと、pipとの互換性についても記述されていて、pyproject.tomlの内容に基づいてrequirements.txtを吐き出すことも可能だった。
requirements.inが何か分かってなかったので調べた。
requirementx.inはトップレベルの依存関係だけを記述したもので、requirements.txtは全ての依存関係を記述したものっぽい。
ただし、requirements.txtには全ての依存関係がリストアップされているがバージョンが範囲指定されていたりと一意にバージョンが定まった記述でないこともあり、ロックファイルとは厳密には言えないっぽい。
プロジェクト固有のバージョンの組み合わせが一意になるよう別途ロックファイルを吐き出しておくことで、プロジェクトメンバー間で同一の環境(少なくとも依存関係に関しては)を保証する。