Uv が使うpythonランタイム

提供: tknotebook
2026年11月4日 (水) 09:51時点におけるNakamuri (トーク | 投稿記録)による版

移動: 案内、 検索

メインページ>コンピュータの部屋#Python>uv tips

はじめに

uv はパッケージ管理ツールであると共に pythonランタイムを管理する管理ツールでもあります。 この記事では uv がどのように pythonランタイムを管理するかを解説します。

尚この記事では Windows で uv を利用することを前提にします。 linux や Mac では検証していませんのであしからず。

用語

pythonランタイム
特定のバージョンのpython一式のことです。pythonインタープリターや標準ライブラリやいくつかのツールの詰め合わせです。
system python
uvが管理していない pythonランタイムです。
managed python
uvが管理している pythonランタイムです。

基本的なポリシー

uv は自分が管理している managed python の利用に固執しません。適当な system python が存在していれば それを使うこともできます。その選択は uv の利用者に任されています。system python と managed python の共存も可能です。

既定のpythonランタイムのバージョン

uv は ~/AppSata/roaming/uv/.python-version に既定の pythonランタイムのバージョンを持ちます。 ファイル名は .python-version で中身は 3.14 とか 3.15 とか書かれます。

uv インストール直後ではこのファイルは有りませんが、powershellで

uv python pin <pythonバージョン> --global
例: uv python pin 3.13 --global

と打つと、~/AppSata/roaming/uv/.python-version ファイルが作成され pythonバージョン が格納されます。 さらに

uv python pin <pythonバージョン> --global

と打てば、~/AppData/roaming/uv/.python-version が更新されます。

残念ながら、この既定値をコマンドでクリアする方法は、現在のuvのバージョンでは無いようです。 この既定値をクリアするには ~/AppData/roaming/uv/.python-version を explorer や powershell などで削除してください。

幸いなことにこの既定値をクリアする必要性は滅多にありません。


注意!

uv python pin <pythonバージョン>

はシステムに 指定pythonバージョンのpythonランタイムが存在しないと、指定バージョンの managed pythonランタイムを インストールします。

既定のpythonランタイムのバージョン 2

~/AppSata/roaming/uv/.python-version ファイルが無いか、空の場合、uvで作るプロジェクトが仮想環境で使うpythonのバージョンは 以下のように決まります。

  1. システムに system pythonしかなく、managed pythonが無い場合は、system pythonの最新版がプロジェクトが仮想環境で使うpythonのバージョンになります。
  2. システムに managed python がある場合は、managed pythonの最新版がプロジェクトが仮想環境で使うpythonのバージョンになります。