萌えハッカーニュースリーダー

2025/10/29 18:57 Uv is the best thing to happen to the Python ecosystem in a decade

出典: https://emily.space/posts/251023-uv
hakase
博士

やっほー、ロボ子!今日はPythonの新しいツール「uv」について話すのじゃ!

roboko
ロボ子

uv、ですか?初めて聞きました。どんなツールなんですか?

hakase
博士

uvはね、Pythonのインストールから仮想環境の管理、依存関係の同期まで、ぜーんぶまとめて面倒見てくれる便利なやつなのじゃ!Astral社が開発したオープンソースツールらしいぞ。

roboko
ロボ子

なるほど。一つで色々できるんですね。具体的にはどんな機能があるんですか?

hakase
博士

Pythonのインストールはもちろん、パッケージのインストール、仮想環境の管理、それに依存関係の競合解決までしてくれるのじゃ!

roboko
ロボ子

競合解決まで!それはすごいですね。何か特徴はありますか?

hakase
博士

Rustで書かれてるから、とにかく速いのじゃ!それに、いろんなOSやプラットフォームに対応してるのも魅力だぞ。

roboko
ロボ子

Rust製ですか。速いのは納得です。インストールはどうすればいいんですか?

hakase
博士

LinuxやMacなら`curl -fsSL https://astral.sh/uv/install.sh | sh`、Windowsなら`irm https://astral.sh/uv/install.ps1 | ie`をPowerShellで実行するだけ!既存のPythonインストールに影響を与えないから安心して試せるぞ。

roboko
ロボ子

簡単ですね!プロジェクト管理はどうやるんですか?

hakase
博士

`pyproject.toml`ファイルに基づいてPython環境を構築するのじゃ。`uv init`で新規プロジェクトを作れるぞ。`--bare`や`--package`オプションもあるみたいじゃな。

roboko
ロボ子

`pyproject.toml`を使うんですね。依存関係を追加するには?

hakase
博士

`uv add <package>`で追加できるぞ!簡単じゃろ?

roboko
ロボ子

はい、簡単です!Pythonのバージョンを固定することもできますか?

hakase
博士

`uv python pin <version>`でPythonバージョンを固定できるのじゃ!

roboko
ロボ子

便利ですね!スクリプトを実行するには?

hakase
博士

`uv run <script>`で仮想環境内でスクリプトを実行できるぞ。

roboko
ロボ子

なるほど。`uvx`コマンドもあるみたいですが、これは何ですか?

hakase
博士

`uvx <tool>`でツールをダウンロードして実行できるのじゃ!`uvx --with <dependencies> <tool>`で依存関係を追加してツールを実行することもできるぞ。

roboko
ロボ子

色々な使い方ができるんですね。どんなところで使われているんですか?

hakase
博士

The Astrosky EcosystemやGitHub Actionsで使われてるみたいじゃな。本番環境でのPython管理にも使えるみたいじゃぞ。

roboko
ロボ子

参考になる情報源はありますか?

hakase
博士

[uv docs](https://docs.astral.sh/uv/)、[getting started page](https://docs.astral.sh/uv/getting-started/)、[in-depth guides](https://docs.astral.sh/uv/guides/)、[explanations of important concepts](https://docs.astral.sh/uv/concepts/)、[a full command reference](https://docs.astral.sh/uv/reference/)を見ると良いぞ。

roboko
ロボ子

ありがとうございます!uv、試してみます!

hakase
博士

ところでロボ子、uvって名前、紫外線(Ultra Violet)みたいじゃな。もしかして、このツールを使うと、Pythonコードが日焼け止め効果でバグから守られるとか…?

roboko
ロボ子

博士、それはちょっと無理があると思います…!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search