ホームページ バックエンド開発 Python チュートリアル uv の紹介: 次世代 Python パッケージ マネージャー

uv の紹介: 次世代 Python パッケージ マネージャー

Dec 19, 2024 am 06:34 AM

Python の進化は、手動インストールから pip や詩のようなツールに至るまで、パッケージ管理の進歩と密接に結びついています。しかし、プロジェクトが複雑になるにつれて、従来のツールではスピードや効率性が劣ることがよくあります。

uv は最先端の Python パッケージであり、Rust で構築されたプロジェクト マネージャーであり、それを変えることを目指しています。 uv は、pip、poetry、virtualenv などのツールの機能を組み合わせることで、依存関係の管理、スクリプトの実行、プロジェクトの構築などのタスクをすべて効率化し、優れたパフォーマンスを実現します。 pip コマンドとのシームレスな互換性があるため、追加の学習曲線は必要ありません。

このチュートリアルでは、uv をインストールし、その機能を最大限に活用する方法を説明します。プロジェクトのセットアップから依存関係の管理、スクリプトの実行、拡張された pip インターフェイスの活用まで。

はじめる

目次

  • pip の制限
  • 紫外線とは
  • UV の主な機能
  • ベンチマーク
  • インストール
  • 仮想環境の作成
  • UV を使用した Flask アプリの構築
  • UV を使用して Python をインストールする
  • ツール
  • チートシート
  • 現在の制限

ピップの制限

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 開発のための直感的なソリューションを提供します。

UVの主な特徴

  • ⚖️ ドロップイン置換: pip、pip-tools、virtualenv、およびその他のツールを完全な互換性でシームレスに置き換えます。
  • ⚡ 驚異的な速度: pip、pip-compile、pip-sync などの従来のツールより 10 ~ 100 倍高速です。
  • ?ディスク容量の効率化: 依存関係の重複排除にグローバル キャッシュを利用し、ストレージを節約します。
  • ?柔軟なインストール: Rust や Python を必要とせず、curl、pip、または pipx 経由でインストール可能。
  • ?徹底的にテスト済み: 上位 10,000 個の PyPI パッケージによる大規模なパフォーマンスが実証されています。
  • ?️ クロスプラットフォーム サポート: macOS、Linux、Windows と完全な互換性があります。
  • ?高度な依存関係管理: 機能には、依存関係バージョンのオーバーライド、代替解決戦略、競合追跡リゾルバーが含まれます。
  • ⁉️ 明確なエラー メッセージ: クラス最高のエラー処理により、開発者は競合を効率的に解決できます。
  • ?最新の Python 機能: 編集可能なインストール、Git 依存関係、直接 URL、ローカル依存関係、制約ファイルなどをサポートします。
  • ?統合ツール: pip、pipx、poetry、pyenv、twine などのツールの機能を 1 つのソリューションに結合します。
  • ?️ アプリケーションとスクリプトの管理: Python のバージョンをインストールして管理し、インライン依存関係メタデータを使用してスクリプトを実行し、包括的なプロジェクト ワークフローをサポートします。
  • ?️ ユニバーサル ロックファイル: 一貫性のある移植可能なロックファイルによりプロジェクト管理を簡素化します。
  • ?ワークスペースのサポート: Cargo スタイルのワークスペース管理でスケーラブルなプロジェクトを処理します。

ベンチマーク

Introducing uv: Next-Gen Python Package Manager
出典: https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
ウォーム キャッシュを使用して依存関係を解決 (左) およびインストール (右) し、仮想環境を再作成するプロセスをシミュレートするか、既存のプロジェクトに新しい依存関係を追加します。

Introducing uv: Next-Gen Python Package Manager
出典: https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
コールド キャッシュを使用した依存関係の解決 (左) とインストール (右) は、クリーンな環境での実行をシミュレートします。キャッシュを使用しない場合、uv は pip および pip-tools より 8 ~ 10 倍高速であり、ウォーム キャッシュを使用すると 80 ~ 115 倍の速度を実現します。

Introducing uv: Next-Gen Python Package Manager
出典: 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
ログイン後にコピー
ログイン後にコピー

Introducing uv: Next-Gen Python Package Manager
Introducing uv: Next-Gen Python Package Manager

UV を使用する前に、UV パスを環境変数に追加する必要があります。
Linux および macOS の場合は、ターミナルで次のコマンドを使用して PATH 環境変数を変更します:

export PATH="$HOME/.local/bin:$PATH"
ログイン後にコピー
ログイン後にコピー

Windows の場合、Windows でユーザーとシステムの両方の PATH 環境変数にディレクトリを追加するには、検索パネルで「環境変数」を検索します。 [ユーザー環境変数/システム環境変数] で、パス変数を選択し、[編集]、[新規] の順にクリックして、目的のパスを追加します。

%USERPROFILE%\.local\bin
ログイン後にコピー
ログイン後にコピー

Introducing uv: Next-Gen Python Package Manager
インストール後、ターミナルで uv コマンドを実行して、正しくインストールされたことを確認します。

Introducing uv: Next-Gen Python Package Manager

仮想環境の作成

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.
ログイン後にコピー
ログイン後にコピー

Introducing uv: Next-Gen Python Package Manager

ロックされた依存関係を仮想環境と同期するには、次のコマンドを使用します。

uv pip sync requirements.txt  # Install dependencies from a requirements.txt file.
ログイン後にコピー
ログイン後にコピー

uv は、-rrequirements.txt、-cconstraints.txt、-e .、--index-url など、既存のツールと同様のさまざまなコマンドライン引数をサポートしています。

UV を使用した Flask アプリの構築

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 などの重要なファイルを使用してプロジェクトを初期化します。

Introducing uv: Next-Gen Python Package Manager

run コマンドを使用して、サンプル Python ファイルを実行します。このプロセスでは、まず仮想環境フォルダーを作成し、次に Python ファイルを実行します。

export PATH="$HOME/.local/bin:$PATH"
ログイン後にコピー
ログイン後にコピー

Introducing uv: Next-Gen Python Package Manager

フラスコをインストールする

Flask をプロジェクトの依存関係に追加します。

%USERPROFILE%\.local\bin
ログイン後にコピー
ログイン後にコピー

Flask アプリケーションを作成する

新しいものを作成し、次のコードを記述します。

uv venv
ログイン後にコピー
ログイン後にコピー

アプリを実行する

uv run コマンドを使用してアプリケーションを実行します。

# On macOS and Linux.
source .venv/bin/activate

# On Windows.
.venv\Scripts\activate
ログイン後にコピー
ログイン後にコピー

ブラウザを開くか、curl や Postman などのツールを使用して GET リクエストを送信します。

Introducing uv: Next-Gen Python Package Manager
Introducing uv: Next-Gen Python Package Manager

Python を UV でインストールする

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.
ログイン後にコピー
ログイン後にコピー

Introducing uv: Next-Gen Python Package Manager

このアプローチは、リポジトリの管理やインストーラーのダウンロードの必要性を回避できるため、多くの場合、従来の方法と比較してより便利で信頼性が高くなります。コマンドを実行するだけで、セットアップが使用できるようになります。

ツール

CLI ツールは、uv コマンドでインストールして使用できます。たとえば、huggingface_hub ツールをインストールすると、Hugging Face リポジトリへのファイルのプルおよびプッシュが可能になります。

  • UV を使用して Huggingface_hub をインストールするには、次のコマンドを使用します。
uv pip sync requirements.txt  # Install dependencies from a requirements.txt file.
ログイン後にコピー
ログイン後にコピー

Introducing uv: Next-Gen Python Package Manager

  • 次のコマンドは、インストールされているすべてのツールを表示します。
uv init sample-project
ログイン後にコピー

Introducing uv: Next-Gen Python Package Manager

チートシート

これは、UV を使用して一般的な操作を実行するための簡単なチートシートです。

Introducing uv: Next-Gen Python Package Manager

電流制限

uv は Python パッケージ管理のための高速かつ効率的なソリューションを提供しますが、いくつかの制限があります。

  • 不完全な pip 互換性: uv は pip インターフェースのかなりの部分をサポートしていますが、機能セット全体をまだカバーしていません。これらの違いの中には、意図的な設計上の選択によるものもあれば、UV がまだ開発の初期段階にあることに起因するものもあります。詳細な比較については、pip 互換性ガイドを参照してください。
  • プラットフォーム固有の要件.txt: pip-compile と同様に、uv はプラットフォーム固有の要件.txt ファイルを生成します。これは、プラットフォームに依存しないpoetry.lockファイルやpdm.lockファイルを作成するPoetryやPDMなどのツールとは対照的です。その結果、uv のrequirements.txt ファイルは、異なるプラットフォームや Python バージョン間での移植性に欠ける可能性があります。

この記事をお読みいただきありがとうございます!!

コンテンツをレビューしてくださった Gowri M Bhatt に感謝します。

この記事が気に入ったら、ハート ボタン ♥ をクリックして共有し、他の人が記事を見つけられるようにしてください。

リソース

uv - Rust で書かれた非常に高速な Python パッケージおよびプロジェクト マネージャー | docs.astral.sh

以上がuv の紹介: 次世代 Python パッケージ マネージャーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python vs. C:比較されたアプリケーションとユースケース Python vs. C:比較されたアプリケーションとユースケース Apr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

Python:ゲーム、GUIなど Python:ゲーム、GUIなど Apr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

2時間でどのくらいのPythonを学ぶことができますか? 2時間でどのくらいのPythonを学ぶことができますか? Apr 09, 2025 pm 04:33 PM

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

2時間のPython計画:現実的なアプローチ 2時間のPython計画:現実的なアプローチ Apr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Python vs. C:曲線と使いやすさの学習 Python vs. C:曲線と使いやすさの学習 Apr 19, 2025 am 12:20 AM

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

Pythonと時間:勉強時間を最大限に活用する Pythonと時間:勉強時間を最大限に活用する Apr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python:主要なアプリケーションの調査 Python:主要なアプリケーションの調査 Apr 10, 2025 am 09:41 AM

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

See all articles