How to select the installer¶
Enabling UV¶
virtual環境タイプは、デフォルトでは、仮想環境の作成にvirtualenvを使用し、依存関係のインストールにpipを使用します。これらのツールの代わりにUVを使用すると、環境の作成と依存関係の解決を高速化できます。
caveat
UVは現在開発中であり、すべての依存関係に対して機能しない可能性があります。
これを行うには、installer
optionをuv
に設定します。たとえば、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}"