hatch を使った python の開発 workflow
この記事では、 python のプロジェクト管理ツール hatch を使った実際の開発における workflow を紹介する。
hatch とは何か、hatch の基本的な使い方は説明をしない。
Hatch を使った python のバージョン管理
hatch では python のディストリビューションをインストールすることができる。
hatch python install <pythonのバージョン>
からインストールをすることができる。
hatch python install 3.11
などのメジャーリリースを指定することができる
注意点としてここでは .zshrc
等にこの path を追加する設定を追加してしまう。
これを防ぐためには --private
オプションを付与する。
hatch python isntall --private 3.11
Hatch にどの python を使用させるかを指定する
hatch env create
などの venv 作成コマンドはとても便利だが、せっかく hatch でインストールした python のディストリビューションがあるのにそれを使わなかったらもったいない。
venv を作成するにあたって、どの python のバージョンを使うか指定する方法は存在する。
HATCH_PYTHON
の環境変数を指定することによって、 hatch がデフォルトで使用する python のパスを設定することができる。
export HATCH_PYTHON=/path/to/python
hatch env create # /path/to/python が使用され virtualenv が作成される
いちいちフルパスを指定することは面倒くさいので hatch python find
を使ってこう書ける
HATCH_PYTHON="$(hatch python find 3.10)" hatch env create
Hatch と direnv
hatch shell
を用いると適切に virtualenv を立ち上げてくれる、しかしながら新しいシェルを立ち上げてしまうために。 .envrc
にこれを直接記述をしてしまうと適切に direnv が処理をできない。
よって、 hatch shell
ではなく直接 virtualenv を読み込まなければならない。
これを解決するには hatch env find
を用いてそのディレクトリ(プロジェクト)に紐づいた path を取得することで実現できる。
#!/bin/bash
source "$(hatch env find)/bin/activate"
Discussion