Python 環境と依存関係をチェックするためだけに、pip、virtualenv、conda、poeting、pyenv などの複数のツールを使いこなすことにうんざりしていませんか?あなたは一人ではありません! Python プロジェクトの管理は、特にさまざまなパッケージ マネージャーやツールを使いこなす必要があるため、頭の痛い作業のように感じることがあります。
uv — Universal Virtualenv と入力します。これは、Python 開発プロセスを合理化し、スピードアップするために設計されたワンストップ ショップのパッケージ マネージャーと考えてください。
uv は、別の最新のパッケージング マネージャーである Rye からインスピレーションを得て、pip、pip-tools、pyenv、virtualenv、詩の最高の機能を統合します。 Rust を使用して構築された uv は、速いだけでなく非常に効率的であり、依存関係の管理から仮想環境の作成まですべてを簡素化します。
一言で言えば、UV は統合です。 1 つの統一されたエクスペリエンスを実現できるのに、複数のツールを切り替える必要はありません。これは、Python 開発からの摩擦を取り除き、より一貫性があり、より迅速にプロジェクトを管理する方法を提供することを目的としています。そしてそれはまた猛烈に速いです!それは動的な管理のための新たな扉を開きます
uv の最も魅力的な機能の 1 つは、Python スクリプト内に依存関係を直接追加できることです。次のような単純なスクリプトがあると想像してください:
# app.py import requests from rich.pretty import pprint response = requests.get("https://peps.python.org/api/peps.json") data = response.json() pprint([(k, v["title"]) for k, v in data.items()][:10])
このスクリプトを実行するということは、通常、仮想環境をセットアップし、依存関係を手動でインストールすることを意味します。 uv を使用すると、すべての依存関係をスクリプトに直接埋め込むことができ、自己完結型および共有可能:
にすることができます。
$ uv add --script app.py 'requestsメタデータの自動生成
これにより、メタデータがスクリプト ファイルに追加されます:
# /// script # dependencies = [ # "requestsそれで終わりです!このファイルを他の人と共有すると、次のコマンドを実行するだけで済みます:
$ uv run app.pyほら、外部セットアップは必要ありません。すべては uv のスピードと効率のおかげです。
2. 仮想環境の作成と管理
仮想環境の概要
デフォルトでは、システムをクリーンに保ち、異なるプロジェクト間の競合を避けるために、uv では仮想環境内にパッケージをインストールする必要があります。 UV を使用した仮想環境の作成は簡単です:
$ uv venvこれにより、分離環境を含む .venv ディレクトリが作成されます。カスタム ディレクトリまたは Python バージョンを指定したい場合は、次のようにすることができます:
$ uv venv my_env --python 3.9環境は使用する準備ができており、パッケージのインストールやスクリプトの実行など、すべてのコマンドに対して uv が自動的に環境を検出します。
uv add と uv pip install を使用する場合
uv add を使用します: プロジェクトの pyproject.toml ファイルに依存関係を追加する場合。これは、プロジェクトの開発中にすべての依存関係を追跡して、プロジェクトを簡単に共有および再現できるようにする場合に最適です。これについては次の投稿で説明しますので、お楽しみに!
$ uv add fastapi
これにより、pyproject.toml が更新され、uv.lock でバージョンがロックされます。
uv pip install を使用する: プロジェクト ファイルを変更せずにすぐに使用できるパッケージ、または pyproject.toml でパッケージを追跡する必要がないグローバル ツール用のパッケージをインストールする場合。 uv pip は、即時かつ 1 回限りのインストールであると考えてください。
$ uv pip install requests
適切なコマンドを選択すると、プロジェクトが適切に管理され、共有やデプロイが簡単になります。
今日はコードが機能しても、明日にはパッケージが更新されるために機能しなくなるという経験は誰しもあるでしょう。 uv を使用すると、パッケージのバージョンをロックして一貫性と再現性を確保することでこれを防ぐことができます:
[tool.uv] exclude-newer = "2023-10-16T00:00:00Z"
こうすることで、依存関係の新しいバージョンがリリースされても、プロジェクトは安定したままになります。サプライズを用意できない長期プロジェクトに最適です!
多くの開発者は、異なる Python バージョンを必要とする複数のプロジェクトに取り組む必要があります。 uv を使用すると、次のように簡単にバージョンを切り替えることができます:
$ uv python install 3.8 3.9 3.10
バージョンがインストールされると、バージョン間の切り替えはシームレスになります:
$ uv run --python 3.10 app.py
プロジェクトの特定のバージョンをロックしたい場合:
$ uv python pin 3.9
もう pyenv コマンドをやりくりする必要はありません。面倒な作業はすべて UV が処理します。
uv は、ピップのようなエクスペリエンスを提供しますが、パフォーマンスはターボチャージャー付きです。パッケージのインストールは簡単です:
$ uv pip install flask
オプションの依存関係を追加するか、GitHub リポジトリから直接インストールする必要がありますか?汗をかかないでください:
$ uv pip install 'torch>=1.10.0' "git https://github.com/astral-sh/ruff"
インストールに時間がかかるのを待つ必要はもうありません。UV は作業を迅速かつ効果的に実行します。
コードをリンティングする場合でも、ファイルをフォーマットする場合でも、uv を使用すると CLI ツールのインストールが簡単になります:
グローバル:
$ uv tool install ruff
プロジェクト内でローカル:
$ uv add ruff
グローバルにインストールせずに一時的なコマンドを実行する:
$ uvx black my_code.py
パッケージの競合や環境汚染に別れを告げましょう。必要なときにいつでもどこでもツールを実行するだけです。
Python 開発を大幅に強化し、複数のツールと格闘するのをやめたいなら、uv がその答えです。合理化されたコマンド、再現可能な環境、効率的なパッケージ管理により、uv は Python 開発を面倒な作業ではなく楽しいものにします。
UV を試す準備はできましたか? ?今すぐ始めて、Python プロジェクトを管理するためのより良い方法を体験してください。
パート 2 にご期待ください。そこでは、pyproject.toml の活用、グローバル ツールとローカル ツールのインストールの処理、複雑な環境を管理する際に UV がどのように役立つかなどの高度な機能について詳しく説明します。
コーディングを楽しんでください! ?✨
詳細と完全なドキュメントについては、UV ドキュメントを確認してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3