Environments¶
Environmentsは、テスト、ドキュメントの構築、またはその他のプロジェクトに必要なもののための分離されたワークスペースを可能にするように設計されています。
環境がchosen explicitlyされていない限り、Hatchはデフォルト
の環境を使用します。
Tip
より包括的なウォークスルーについては、Basic usageチュートリアルを参照してください。
Creation¶
環境を作成するには、env create
コマンドを使用します。[setup phase]で作成したプロジェクトのディレクトリ(intro.md#new-project)を入力します。:
$ hatch env create
Creating environment: default
Installing project in development mode
Syncing dependencies
Tip
シェル内のspawning a shellまたはrunning commandsが自動的に作成をトリガーするため、環境を手動で作成する必要はありません。
Entering environments¶
環境内でshellを生成するには、shell
コマンドを使用します。
$ hatch shell
(hatch-demo) $
次に、プロジェクトがインストールされたことを確認します。:
(hatch-demo) $ pip show hatch-demo
Name: hatch-demo
Version: 0.0.1
...
最後に、環境のPythonがどこにあるかを確認しますlocated。:
(hatch-demo) $ python -c "import sys;print(sys.executable)"
...
環境を終了するには、exit
と入力します。
Command execution¶
run
コマンドを使用すると、すでに入力したかのように環境でコマンドを実行できます。たとえば、次のコマンドを実行すると、以前と同じパスが出力されます。:
hatch run python -c "import sys;print(sys.executable)"
Tip
プロジェクトのscriptsを定義する方法を必ず確認してください。
Dependencies¶
Hatchは、環境が現在定義されているproject dependencies(installedおよびdev mode)およびenvironment dependenciesと常に互換性があることを確認します。
cowsay
を依存関係として追加するには、pyproject.toml
を開いて、dependencies
配列に追加します。:
[project]
...
dependencies = [
"cowsay"
]
この依存関係は、次にspawn a shellまたはrun a commandを実行したときにインストールされます。例:
$ hatch run cowsay -t "Hello, world!"
Syncing dependencies
_____________
| Hello, world! |
=============
\
\
^__^
(oo)\_______
(__)\ )\/\
||----w |
|| ||
Note
依存関係の同期中
ステータスは、依存関係の変更に応じてHatchが環境を更新するときに一時的に表示されます。
Selection¶
コマンドを入力または実行する環境を選択するには、-e
/--env
root optionを使用するか、HATCH_ENV
環境変数を設定します。
run
コマンドを使用すると、コマンドの前に<ENV_NAME>:
を付けることで、より明確な選択が可能になります。たとえば、次のように設定したとします。:
[tool.hatch.envs.docs]
dependencies = [
"mkdocs"
]
[tool.hatch.envs.docs.scripts]
build = "mkdocs build --clean --strict"
serve = "mkdocs serve --dev-addr localhost:8000"
[envs.docs]
dependencies = [
"mkdocs"
]
[envs.docs.scripts]
build = "mkdocs build --clean --strict"
serve = "mkdocs serve --dev-addr localhost:8000"
次のコマンドを実行して、ドキュメントを提供できます。:
hatch run docs:serve
Tip
環境を既にenteredしている場合、コマンドはデフォルトでその環境をターゲットにします。
Matrix¶
Every environment can defin/e its own set of matrices:
すべての環境は、独自のmatricesのセットを定義できます。:
[tool.hatch.envs.test]
dependencies = [
"pytest"
]
[[tool.hatch.envs.test.matrix]]
python = ["3.10", "3.11"]
version = ["42", "3.14"]
[[tool.hatch.envs.test.matrix]]
python = ["3.11", "3.12"]
version = ["9000"]
feature = ["foo", "bar"]
[envs.test]
dependencies = [
"pytest"
]
[[envs.test.matrix]]
python = ["3.10", "3.11"]
version = ["42", "3.14"]
[[envs.test.matrix]]
python = ["3.11", "3.12"]
version = ["9000"]
feature = ["foo", "bar"]
env show
コマンドを使用すると、次のように表示されます。:
$ hatch env show --ascii
Standalone
+---------+---------+
| Name | Type |
+=========+=========+
| default | virtual |
+---------+---------+
Matrices
+------+---------+----------------------+--------------+
| Name | Type | Envs | Dependencies |
+======+=========+======================+==============+
| test | virtual | test.py3.10-42 | pytest |
| | | test.py3.10-3.14 | |
| | | test.py3.11-42 | |
| | | test.py3.11-3.14 | |
| | | test.py3.11-9000-foo | |
| | | test.py3.11-9000-bar | |
| | | test.py3.12-9000-foo | |
| | | test.py3.12-9000-bar | |
+------+---------+----------------------+--------------+
Removal¶
単一の環境または環境マトリックスを削除するには、env remove
コマンドを使用します。プロジェクトのすべての環境を削除するには、env prune
コマンドを使用します。