uvで3分!venv不要のPythonプロジェクト作成とHello World実行【pip比10倍高速】

「Pythonプロジェクトを作るたびにpython -m venv venvして、source venv/bin/activateして…この手順、もっと簡単にならないの?」そう思ったことはありませんか?

チーム開発で「僕の環境では動くけど…」という状況に遭遇したり、依存関係のインストールが遅すぎてイライラしたり。Pythonの開発環境構築って、意外と面倒ですよね。

そんな悩みを解決するのがuvです。Rust製の超高速パッケージマネージャーで、venv環境の手動作成が不要になり、チーム開発での依存関係共有が驚くほど簡単になります。この記事では、uvを使って実際にHello Worldを出力するまでの手順を、初心者の方でもわかるように解説します。

目次

uvとは?venv不要の超高速Pythonパッケージマネージャー

uvは、Astral社が開発したRust製のPythonパッケージマネージャーです。従来のpipやPoetryと比べて、圧倒的な速度と使いやすさが特徴です。

公式サイト: https://docs.astral.sh/uv/
GitHub: https://github.com/astral-sh/uv

pipの10〜100倍速い依存関係解決

uvの最大の特徴は、その圧倒的な速度です。Rustで実装されているため、Pythonで書かれたpipと比較して依存関係の解決が10〜100倍高速です。大規模なプロジェクトで数十秒〜数分かかっていたパッケージインストールが、数秒で完了します。

venv環境構築の手間がなくなる

従来のPython開発では、プロジェクトごとに以下の手順が必要でした:

# 従来の面倒な手順
python -m venv venv
source venv/bin/activate  # Windowsの場合: venv\Scripts\activate
pip install -r requirements.txt

uvを使えば、この手順が大幅に簡略化されます。仮想環境の作成・アクティベートをuvが自動的に処理してくれるため、開発者は本質的なコーディングに集中できます。

チーム開発で依存関係を簡単に共有

uvはpyproject.tomluv.lockというファイルで依存関係を管理します。この2つのファイルをGitで共有するだけで、チームメンバー全員が完全に同じ環境を再現できます。

「Aさんの環境では動くけど、Bさんの環境ではエラーが出る」という問題が、ほぼ完全になくなります。

uvのインストール(3つの方法)

uvのインストール方法は、お使いのOSによって異なります。以下から自分の環境に合った方法を選んでください。

公式インストールガイド: https://docs.astral.sh/uv/getting-started/installation/

macOS/Linuxの場合

macOSまたはLinuxを使用している場合、以下のコマンドでインストールできます:

# curlを使用したインストール
curl -LsSf https://astral.sh/uv/install.sh | sh

Homebrewを使用している場合は、こちらの方法も使えます:

# Homebrewを使用したインストール
brew install uv

Windowsの場合

Windowsを使用している場合、PowerShellで以下のコマンドを実行します:

# PowerShellで実行
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

または、pipを使ってインストールすることもできます:

# pipを使用したインストール(すべてのOS共通)
pip install uv

インストール確認

インストールが完了したら、以下のコマンドでバージョンを確認しましょう:

# バージョン確認
uv --version

# 正常にインストールされていれば、以下のような出力が表示されます
# uv 0.5.15 (または最新バージョン)

これでuvのインストールは完了です!

3分でHello World!uvで最初のPythonプロジェクト

それでは、実際にuvを使ってPythonプロジェクトを作成し、Hello Worldを出力してみましょう。たったの3ステップで完了します。

プロジェクト初期化(venv不要!)

まず、新しいプロジェクトを作成します。ここではhello-uvという名前のプロジェクトを作ってみます:

# プロジェクトの初期化
uv init hello-uv

# プロジェクトディレクトリに移動
cd hello-uv

これだけで、以下のファイルが自動的に作成されます:

  • pyproject.toml – プロジェクトの設定と依存関係を管理するファイル
  • hello.py – サンプルのPythonファイル
  • README.md – プロジェクトの説明ファイル

重要なポイント: この時点でpython -m venv venvのような仮想環境作成コマンドは一切不要です。uvが内部で自動的に管理してくれます。

Hello Worldスクリプト作成

自動生成されたhello.pyを開くと、すでにHello Worldのサンプルコードが入っています。念のため、内容を確認してみましょう:

# hello.py
def main():
    print("Hello from hello-uv!")

if __name__ == "__main__":
    main()

もし自分でコードを書きたい場合は、このファイルを編集してください。例えば:

# hello.py - カスタマイズ例
def main():
    print("Hello World!")
    print("uvで作った最初のPythonプロジェクトです!")
    
if __name__ == "__main__":
    main()

実行してみる

それでは、作成したスクリプトを実行してみましょう。uvではuv runコマンドを使います:

# Pythonスクリプトを実行
uv run hello.py

以下のような出力が表示されれば成功です!

Hello World!
uvで作った最初のPythonプロジェクトです!

ポイント: source venv/bin/activateのような仮想環境のアクティベートは不要です。uv runが自動的に適切な環境で実行してくれます。

チーム開発で嬉しい!依存関係の共有方法

uvの真価は、チーム開発で発揮されます。依存関係の管理と共有が驚くほど簡単になります。

pyproject.tomlとuv.lockで環境を完全再現

uvは2つのファイルで依存関係を管理します:

  1. pyproject.toml – プロジェクトの基本設定と依存パッケージのリスト
  2. uv.lock – 各パッケージの正確なバージョンとハッシュ値を記録

例えば、requestsライブラリを追加してみましょう:

# パッケージの追加
uv add requests

このコマンドを実行すると、pyproject.tomlに依存関係が追加され、uv.lockが自動生成されます。

pyproject.tomlの中身を見てみると、以下のように記録されています:

[project]
name = "hello-uv"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
    "requests>=2.31.0",
]

チームメンバーへの共有手順

プロジェクトをチームメンバーと共有する手順は非常にシンプルです:

  1. プロジェクト作成者側: pyproject.tomluv.lockをGitにコミット
# プロジェクト作成者
git add pyproject.toml uv.lock
git commit -m "Add project dependencies"
git push
  1. チームメンバー側: リポジトリをクローンして、たった1コマンドで環境構築完了
# チームメンバー
git clone https://github.com/your-team/hello-uv.git
cd hello-uv

# 依存関係を完全に再現してインストール
uv sync

# すぐに実行可能
uv run hello.py

uv syncコマンドは、uv.lockに記録された完全に同じバージョンの依存パッケージをインストールします。これにより、「僕の環境では動くけど…」問題が解決します。

従来のrequirements.txtとの違いは明確です:

  • requirements.txt: requests==2.31.0のように指定しても、サブ依存関係のバージョンが環境によって異なる可能性がある
  • uv.lock: すべての依存パッケージとサブ依存関係のバージョンとハッシュ値を完全に記録するため、100%同じ環境が再現される

uvの基本コマンド早見表

uvでよく使う基本コマンドをまとめました。この表を参考にすれば、日々の開発がスムーズになります。

コマンドリファレンス: https://docs.astral.sh/uv/reference/cli/

プロジェクト管理

コマンド 説明 使用例
uv init 新規プロジェクト作成 uv init my-project
uv run Pythonスクリプト実行 uv run main.py
uv sync 依存関係を同期 uv sync

パッケージ管理

コマンド 説明 使用例
uv add パッケージを追加 uv add requests
uv remove パッケージを削除 uv remove requests
uv lock uv.lockを更新 uv lock
uv tree 依存関係をツリー表示 uv tree

仮想環境操作(自動管理)

uvは仮想環境を自動的に管理するため、手動での操作はほとんど不要です。ただし、明示的に操作したい場合のコマンドもあります:

コマンド 説明 使用例
uv venv 仮想環境を明示的に作成 uv venv
uv pip install pip互換のインストール uv pip install numpy
uv pip list インストール済みパッケージ一覧 uv pip list

ほとんどの場合、uv adduv runだけで十分です。仮想環境の作成やアクティベートは意識する必要がありません。

pipとの違い・venv手動作成との比較

uvと従来のpip+venvの組み合わせを比較してみましょう。実際の開発体験がどれだけ変わるか、具体的に見ていきます。

速度比較

実際にパッケージをインストールする速度を比較すると、差は歴然です。例えば、Django、requests、numpy、pandasなど、よく使う10個のパッケージをインストールする場合:

ツール インストール時間 備考
pip 約45秒 従来の方法
Poetry 約30秒 依存関係解決が遅い
uv 約3〜5秒 10倍以上高速

この速度差は、日々の開発で大きな影響を与えます。パッケージを追加するたびに待たされるストレスがなくなり、開発のリズムが途切れません。

開発体験の違い

従来のpip+venvとuvの開発体験を具体的に比較してみましょう:

従来のpip+venv:

# 新規プロジェクト作成の手順
mkdir my-project && cd my-project

# 仮想環境を作成
python -m venv venv

# 仮想環境をアクティベート
source venv/bin/activate  # Windowsの場合は異なる

# パッケージをインストール
pip install requests numpy pandas

# requirements.txtを作成
pip freeze > requirements.txt

# スクリプトを実行
python main.py

# 別のプロジェクトに移動する時
deactivate
cd ../another-project
source venv/bin/activate  # また手動でアクティベート

uvの場合:

# 新規プロジェクト作成から実行まで
uv init my-project && cd my-project

# パッケージをインストール(自動でpyproject.toml/uv.lockに記録)
uv add requests numpy pandas

# スクリプトを実行(自動で適切な環境を使用)
uv run main.py

# 別のプロジェクトに移動する時
cd ../another-project
uv run main.py  # アクティベート不要、自動で環境切り替え

手順の数が大幅に減り、環境のアクティベート/ディアクティベートを意識する必要がなくなります

どんな時にuvを使うべき?

uvは以下のような状況で特に効果を発揮します:

  • チーム開発: 依存関係の完全な再現性が重要な場合
  • 複数プロジェクトの並行開発: プロジェクト間の切り替えが頻繁にある場合
  • CI/CD環境: インストール時間を短縮したい場合
  • 大規模プロジェクト: 依存パッケージが多く、インストール時間がネックになっている場合
  • Python初心者: venvの仕組みを理解する前に、まずは開発を始めたい場合

逆に、以下のような場合は従来のpipでも問題ありません:

  • 一時的なスクリプトやテスト
  • 依存パッケージがほとんどない小規模プロジェクト
  • 既存プロジェクトでpip+requirementsが確立されており、移行コストが高い場合

Python開発をさらに効率化する関連記事

uvでPython環境管理をマスターしたら、他の開発ツールや環境構築手法も学んで、さらに効率的な開発環境を構築しましょう:

環境管理・構築ツール

Python開発スキル

開発効率化ツール

まとめ:uvで快適なPython開発環境を手に入れよう

この記事では、uvを使ってvenv不要のPython開発環境を構築し、Hello Worldを実行するまでの手順を解説しました。

uvの主なメリット:

  • venv環境の手動作成・アクティベートが不要
  • pipの10〜100倍速いパッケージインストール
  • pyproject.tomlとuv.lockでチーム開発の環境共有が簡単
  • プロジェクト間の切り替えが自動的に処理される

従来のpip+venvに慣れている方は、最初は戸惑うかもしれません。しかし、一度uvの快適さを体験すると、もう手放せなくなるはずです。

「venvのアクティベートを忘れてシステムPythonにパッケージをインストールしてしまった…」「チームメンバーの環境で動かない…」こんな悩みから解放されましょう。

今日からuvを使って、より効率的で快適なPython開発を始めてみませんか?

公式ドキュメント: https://docs.astral.sh/uv/

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次