uvでpythonのプロジェクトを管理する
最近uvを使い始めたので備忘録として簡単にまとめてみる
uvとは?
使ってみる
# 初期化したいプロジェクトフォルダに移動 cd <project-dir> # プロジェクトを初期化 uv init . # .venvを作成 uv sync # pythonバージョン指定 uv python pin 3.12 # パッケージ追加 uv add <package-name> # 開発時に使用するパッケージを追加 uv add --dev <package-name> # パッケージを削除 uv remove <package-name> # .venvで管理するpythonを起動する uv run python # 仮想環境を有効にする source .venv/bin/activate # 仮想環境を無効にする deactivate
プロジェクト構成について
pythoのプロジェクト構成に関してはflatレイアウトとsrcレイアウトがあるが、
- 外部パッケージとして開発する場合はsrcレイアウト
- アプリケーションとして開発する場合はflatレイアウト で良さそう。 ※外部パッケージを開発する際にflatパッケージだとモジュールを直接参照する可能性があり、ビルドしたパッケージの挙動を正常にテストできなくなることがあるとのこと(テストではうまくいったのに、ビルド後に期待通り動かないといった問題が発生する可能性がある)
パッケージを参照する
uvに限った話ではないが、パッケージをプロジェクトルートのapp
ディレクトリに作成していて、別のディレクトリのモジュールからapp
モジュールを内部で参照したいときは、PYTHONPATHにappがあるパスを指定すれば良い。
# プロジェクトルートから実行する場合 PYTHONPATH=. uv run python ./scripts/hoge.py