Python の進化は、手動インストールから pip や詩のようなツールに至るまで、パッケージ管理の進歩と密接に結びついています。しかし、プロジェクトが複雑になるにつれて、従来のツールではスピードや効率性が劣ることがよくあります。
uv は最先端の Python パッケージであり、Rust で構築されたプロジェクト マネージャーであり、それを変えることを目指しています。 uv は、pip、poetry、virtualenv などのツールの機能を組み合わせることで、依存関係の管理、スクリプトの実行、プロジェクトの構築などのタスクをすべて効率化し、優れたパフォーマンスを実現します。 pip コマンドとのシームレスな互換性があるため、追加の学習曲線は必要ありません。
このチュートリアルでは、uv をインストールし、その機能を最大限に活用する方法を説明します。プロジェクトのセットアップから依存関係の管理、スクリプトの実行、拡張された pip インターフェイスの活用まで。
Pip は、Python で書かれた広く使用されているパッケージ管理システムで、ソフトウェア パッケージのインストールと管理を目的として設計されています。ただし、その人気にもかかわらず、Python のパッケージ管理ツールの中で最も遅いものの 1 つであると批判されることがよくあります。 「pip install が遅い」という苦情は非常に一般的であるため、開発者フォーラムやスレッドに頻繁に表示されます。
pip の重大な欠点の 1 つは、依存関係の匂いの影響を受けやすいことです。依存関係の匂いは、依存関係の構成ファイルの記述や保守が不十分な場合に発生します。これらの問題は、プロジェクトの複雑さの増大や保守性の低下など、深刻な結果につながる可能性があります。
pip のもう 1 つの制限は、ランタイム環境を復元するときに Python コードを一貫して正確に照合できないことです。この不一致により、依存関係推論の成功率が低下する可能性があり、プロジェクト環境を確実に再作成することが困難になります。
uv は、ruff の作成者によって開発され、Rust で書かれた最新の高性能 Python パッケージ マネージャーです。 pip および pip-tools のドロップイン代替品として設計されており、優れた速度と既存のツールとの互換性を実現します。
主な機能には、編集可能なインストール、Git と URL の依存関係、制約ファイル、カスタム インデックスなどのサポートが含まれます。 uv の標準準拠の仮想環境は他のツールとシームレスに連携し、ロックインやカスタマイズを回避します。これはクロスプラットフォームで、Linux、Windows、macOS をサポートしており、PyPI インデックスに対して広範にテストされています。
シンプルさ、スピード、信頼性を重視した uv は、インストールの遅さ、バージョンの競合、複雑な依存関係の管理など、開発者の一般的な問題点に対処し、最新の Python 開発のための直感的なソリューションを提供します。
出典: https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
ウォーム キャッシュを使用して依存関係を解決 (左) およびインストール (右) し、仮想環境を再作成するプロセスをシミュレートするか、既存のプロジェクトに新しい依存関係を追加します。
出典: https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
コールド キャッシュを使用した依存関係の解決 (左) とインストール (右) は、クリーンな環境での実行をシミュレートします。キャッシュを使用しない場合、uv は pip および pip-tools より 8 ~ 10 倍高速であり、ウォーム キャッシュを使用すると 80 ~ 115 倍の速度を実現します。
出典: https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
pip や setuptools などのシード パッケージを使用した場合 (左) と使用しない場合 (右) の仮想環境の作成。 uv は、Python から独立して動作しながら、python -m venv よりも約 80 倍、virtualenv よりも 7 倍高速です。
UV のインストールは素早く簡単です。スタンドアロン インストーラーを選択することも、PyPI から直接インストールすることもできます。
# On macOS and Linux. curl -LsSf https://astral.sh/uv/install.sh | sh # On Windows. powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # With pip. pip install uv # With pipx. pipx install uv # With Homebrew. brew install uv # With Pacman. pacman -S uv
UV を使用する前に、UV パスを環境変数に追加する必要があります。
Linux および macOS の場合は、ターミナルで次のコマンドを使用して PATH 環境変数を変更します:
export PATH="$HOME/.local/bin:$PATH"
Windows の場合、Windows でユーザーとシステムの両方の PATH 環境変数にディレクトリを追加するには、検索パネルで「環境変数」を検索します。 [ユーザー環境変数/システム環境変数] で、パス変数を選択し、[編集]、[新規] の順にクリックして、目的のパスを追加します。
%USERPROFILE%\.local\bin
インストール後、ターミナルで uv コマンドを実行して、正しくインストールされたことを確認します。
UV を使用した仮想環境の作成はシンプルで簡単です。次のコマンドを希望の環境名とともに使用して作成します。
uv venv
# On macOS and Linux. source .venv/bin/activate # On Windows. .venv\Scripts\activate
仮想環境へのパッケージのインストールは、よく知られたプロセスに従います。さまざまなインストール方法を以下に示します。
uv pip install flask # Install Flask. uv pip install -r requirements.txt # Install from a requirements.txt file. uv pip install -e . # Install current project in editable mode. uv pip install "package @ ." # Install current project from disk uv pip install "flask[dotenv]" # Install Flask with "dotenv" extra.
ロックされた依存関係を仮想環境と同期するには、次のコマンドを使用します。
uv pip sync requirements.txt # Install dependencies from a requirements.txt file.
uv は、-rrequirements.txt、-cconstraints.txt、-e .、--index-url など、既存のツールと同様のさまざまなコマンドライン引数をサポートしています。
UV を使用したプロジェクト関連のコマンドをいくつか見てみましょう。まず、「sample-project」という名前の Python プロジェクトを初期化します。
# On macOS and Linux. curl -LsSf https://astral.sh/uv/install.sh | sh # On Windows. powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # With pip. pip install uv # With pipx. pipx install uv # With Homebrew. brew install uv # With Pacman. pacman -S uv
サンプルプロジェクトディレクトリに移動します。 uv は、app.py、requirements.txt、README.md などの重要なファイルを使用してプロジェクトを初期化します。
run コマンドを使用して、サンプル Python ファイルを実行します。このプロセスでは、まず仮想環境フォルダーを作成し、次に Python ファイルを実行します。
export PATH="$HOME/.local/bin:$PATH"
Flask をプロジェクトの依存関係に追加します。
%USERPROFILE%\.local\bin
新しいものを作成し、次のコードを記述します。
uv venv
uv run コマンドを使用してアプリケーションを実行します。
# On macOS and Linux. source .venv/bin/activate # On Windows. .venv\Scripts\activate
ブラウザを開くか、curl や Postman などのツールを使用して GET リクエストを送信します。
UV を使用した Python のインストールはオプションであり、既存の Python インストールとシームレスに動作します。ただし、Python を UV 経由でインストールすることを希望する場合は、次のような簡単なコマンドで実行できます。
uv pip install flask # Install Flask. uv pip install -r requirements.txt # Install from a requirements.txt file. uv pip install -e . # Install current project in editable mode. uv pip install "package @ ." # Install current project from disk uv pip install "flask[dotenv]" # Install Flask with "dotenv" extra.
このアプローチは、リポジトリの管理やインストーラーのダウンロードの必要性を回避できるため、多くの場合、従来の方法と比較してより便利で信頼性が高くなります。コマンドを実行するだけで、セットアップが使用できるようになります。
CLI ツールは、uv コマンドでインストールして使用できます。たとえば、huggingface_hub ツールをインストールすると、Hugging Face リポジトリへのファイルのプルおよびプッシュが可能になります。
uv pip sync requirements.txt # Install dependencies from a requirements.txt file.
uv init sample-project
これは、UV を使用して一般的な操作を実行するための簡単なチートシートです。
uv は Python パッケージ管理のための高速かつ効率的なソリューションを提供しますが、いくつかの制限があります。
この記事をお読みいただきありがとうございます!!
コンテンツをレビューしてくださった Gowri M Bhatt に感謝します。
この記事が気に入ったら、ハート ボタン ♥ をクリックして共有し、他の人が記事を見つけられるようにしてください。
uv - Rust で書かれた非常に高速な Python パッケージおよびプロジェクト マネージャー | docs.astral.sh
以上がuv の紹介: 次世代 Python パッケージ マネージャーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。