s's-nook:

Pythonプロジェクトにuvを導入 with VSCode

巷で話題のuvを用いてVSCodeの開発環境を構築した記録です。

uv でモジュールをインストールした後、モジュールのパラメータ予測、ソースコード参照が可能な環境を作成するための手順が少なかったので記事にしました。

uvとは

Rust で書かれた非常に高速な Python パッケージおよびプロジェクトマネージャーです。

uv
docs.astral.sh

公式Doc以外にもuvについては話題になっていた以下の記事群を参照すると良いと思います。

Python用の爆速パッケージマネージャー「uv」誕生!Rust採用で100倍高速 - ろぼいんブログ
Rust言語で開発された超高速なPythonパッケージインストーラー・リゾルバー「uv」が発表されました。従来のパッケージ管理ツールのpipやpip-toolsを置き換えることを目指しています。この記事では、uvの特徴や機能について詳しく紹介します。
roboin.io
Python用の爆速パッケージマネージャー「uv」誕生!Rust採用で100倍高速 - ろぼいんブログ
Rust製のPythonパッケージ管理ツール「uv」を使ってみよう | gihyo.jp
3月の「Python Monthly Topics」は、Rust製のパッケージ管理ツール「uv」について紹介します。
gihyo.jp
Rust製のPythonパッケージ管理ツール「uv」を使ってみよう | gihyo.jp
【Python】uvで始めるPythonプロジェクト - Qiita
はじめにRyeで始めるPythonプロジェクトを執筆してから半年近く経ちました。(よければ、まずRyeの記事から読んでいただけると嬉しいです)https://qiita.com/kissy24…
qiita.com
【Python】uvで始めるPythonプロジェクト - Qiita

プロジェクトへのuvの導入

cd path/to/your/project ❯ uv init Initialized project `your-project-name` // .venvの生成するため、syncを実行する ❯ uv sync Creating virtual environment at: .venv ❯ tree -L 1 -a . ├── .env ├── .gitignore ├── .python-version ├── .venv ├── README.md ├── hello.py ├── pyproject.toml └── uv.lock // 任意のモジュールをプロジェクトに追加する ❯ uv add apache-airflow

VSCode上でuv環境を指定する

VSCodeの画面の左下にあるPythonのバージョンを表す数字の部分をクリックし、「インタープリターのパスを選択」を選択。

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2024-12-26_19.32.00.png

uvによって作成さらたpythonバイナリのパス(your/path/to/airflow/.venv/bin/python3)を入力

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2024-12-26_19.34.48.png

上記操作を実施するとプロジェクトでuvのインタープリタが有効になり、モジュールが適切にimportされるようになります。

画像のようにパラメータ補完やcommand+クリックによるソース参照機能が有効になっていることを確認できると思います。

%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2024-12-26_19.37.35.png

本格的にやりたい場合、以下のdevcontainerを用いた環境構築をするのが良さそう。

uv から始まる Python 開発環境構築
zenn.dev
uv から始まる Python 開発環境構築

【おまけ 】ruffを導入してコードフォーマットする

uvの開発元と同じ Astral 社が開発している Python 用の Formatter, Linter である ruffを導入して利用してみます。

❯ uv add --dev ruff # 配下にあるpythonファイルをフォーマットする ❯ ruff format .

uv addの際に--dev オプションをつけることでdevelopment dependency groupに依存関係を追加することができます。

自分の環境では lefthookのpre-commitのフックにruffを追加してコミット前にコードを整形するルールをプロジェクトに適用しています。

広告