uvとRuffで爆速Python生活
やること
- 爆速で開発環境を整えてくれる uv と
- 爆速で Linting を行ってくれる Ruff を
- WSL に導入して VScode 系エディタで快適に開発できるようにする
前提環境
- WSL
- Ubuntu
- Windows11
- Cursor
Uv
Is 何
GitHub - astral-sh/uv: An extremely fast Python package and project manager, written in Rust.
なんか早いパッケージマネージャー兼プロジェクトマネージャーと聞いています。
Rust で書かれていて、早くて楽とのこと。
🚀 A single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv, and more.
いくつか聞いたことあったり使ったことあるツールが入ってますね、
Poetry はよく使っています。
ということで、Poetry の代わりに使っちゃおうぜってことで導入していきます。
導入
WSL なので curl コマンドで導入します。
curl -LsSf https://astral.sh/uv/install.sh | sh
インストールが終わるとパスに入れてくれって言われるので、
任意のシェルの構成ファイルに追記します。
zsh なら .zshrc
ですね。
追記てターミナルを再起動すると、
uv コマンドが使えるようになってると思うので、
チェックがてら uv をアップデートしておきます。
uv self update
プロジェクトの作成
直感的に init
とパスを指定してあげると簡単にプロジェクトが作れます。
パスを指定しないとカレントディレクトリがプロジェクト化するので注意。
uv init <path>
init したらば、プロジェクトを開くと、venv が見当たらないので早速 venv を構築しましょう。python -m venv
…なんて使わなくても uv に搭載されているのでこれを使います。
uv venv
これ、実行した瞬間に処理が終了して吹き出しました。
それくらい爆速で環境が作られます。
パッケージ導入の前に
tqdm
とか色々パッケージを入れたいところですが、
その前に今回 uv といっしょに使う Ruff について説明します。
Ruff
Is 何
Ruff, an extremely fast Python linter | Astral
簡単に行ってしまうと、コードを解析して。修正したりしてくれるやつです。
Black とかそういうタイプの。
これも uv 同様に爆速で動くそうです。
これを uv に導入して、エディターで快適に使えるように仕込んでいきます。
エディターに拡張を導入
Ruff - Visual Studio Marketplace
上記リンク、もしくは vscode 系エディターから ruff と検索するなりしてインストールします。
UV 第二部
パッケージのインストール
uv では 3 通りの方法でパッケージをインストールすることができます。
厳密には、pyproject.toml
に依存関係を追加するイメージです。
- 開発時のみ使うパッケージ (開発用)
- 制約のないパッケージ (通常)
※括弧内は今後の略称です
開発環境に制約をかけるタイプ
Ruff は開発でしか使わないパッケージのため、これ用に入れていきます。pip
などは使わずに、ちゃんと用意されているのでこれを使います。
uv add --dev ruff
CLI ツールを導入するタイプ
CLI ツールを開発時に使用したい場合は、
uv tool install
のようにします。
また、一時的に CLI 使いたいぜって場合は、
面白いことに一時的に使えるコマンドがあるのでこれも覚えておきましょう。
uvx <package>
uvx --from <package> <packageの中身> # パッケージ名と異なる場合
uvx <package>@<version> # バージョン指定
uvx --with <package> <clitool> # プラグインが必要な場合
通常パッケージの導入
普通に入れたい場合は普通に add
で入れれます。
uv add tqdm
実行する
VScode で実行する場合は通常のデバッグ構成で大丈夫です。