Skip to content

How to select the installer


Enabling UV

virtual環境タイプは、デフォルトでは、仮想環境の作成にvirtualenvを使用し、依存関係のインストールにpipを使用します。これらのツールの代わりにUVを使用すると、環境の作成と依存関係の解決を高速化できます。

caveat

UVは現在開発中であり、すべての依存関係に対して機能しない可能性があります。

これを行うには、installeroptionuvに設定します。たとえば、default環境に対してこの機能を有効にする場合は、次のように設定できます。:

[tool.hatch.envs.default]
installer = "uv"
[envs.default]
installer = "uv"

Tip

UVを有効にするすべての環境には、HATCH_UV環境変数として使用可能なUVへのパスがあります。

Configuring the version

すべての環境で共有されるUVは、Hatchで機能することがわかっている特定のバージョン範囲を使用します。別のバージョンを使用したい場合は、内部hatch-uv環境のdependenciesを上書きできます。:

[tool.hatch.envs.hatch-uv]
dependencies = [
  "uv>9000",
]
[envs.hatch-uv]
dependencies = [
  "uv>9000",
]

Externally managed

UVを自分で管理したい場合は、HATCH_ENV_TYPE_VIRTUAL_UV_PATH環境変数を設定してUVをHatchに公開することができます。この環境変数は、Hatchが代わりに使用するUVバイナリへの絶対パスである必要があります。これは暗黙的にenables UVです。

Installer script alias

pipを呼び出すscriptsまたはcommandsがある場合は、uv pipコマンドにpipというエイリアスを付けて、両方の設定方法で同じコマンドを使用してマッスルのメモリを保持できるようにすると便利です。次に、conditionallyUVを有効にしてエイリアスを設定する行列の例を示します。:

[[tool.hatch.envs.example.matrix]]
tool = ["uv", "pip"]

[tool.hatch.envs.example.overrides]
matrix.tool.installer = { value = "{matrix:tool}" }
matrix.tool.scripts = [
  { key = "pip", value = "{env:HATCH_UV} pip {args}", if = ["uv"] },
]
[[envs.example.matrix]]
tool = ["uv", "pip"]

[envs.example.overrides]
matrix.tool.installer = { value = "{matrix:tool}" }
matrix.tool.scripts = [
  { key = "pip", value = "{env:HATCH_UV} pip {args}", if = ["uv"] },
]

もう1つの一般的な使用例は、すべてのtest environmentsにUVを公開することです。この場合、多くの場合、scriptsマッピングを直接変更するのではなく、extra scriptを追加します。:

[tool.hatch.envs.hatch-test.extra-scripts]
pip = "{env:HATCH_UV} pip {args}"
[envs.hatch-test.extra-scripts]
pip = "{env:HATCH_UV} pip {args}"