「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python プロジェクト管理を uv でマスターする PartIt&#s Time to Dough Poetry

Python プロジェクト管理を uv でマスターする PartIt&#s Time to Dough Poetry

2024 年 11 月 4 日に公開
ブラウズ:607

Mastering Python Project Management with uv PartIt

Python 環境と依存関係をチェックするためだけに、pip、virtualenv、conda、poeting、pyenv などの複数のツールを使いこなすことにうんざりしていませんか?あなたは一人ではありません! Python プロジェクトの管理は、特にさまざまなパッケージ マネージャーやツールを使いこなす必要があるため、頭の痛い作業のように感じることがあります。

uvUniversal Virtualenv と入力します。これは、Python 開発プロセスを合理化し、スピードアップするために設計されたワンストップ ショップのパッケージ マネージャーと考えてください。


ちょっとした裏話

uv は、別の最新のパッケージング マネージャーである Rye からインスピレーションを得て、pip、pip-tools、pyenv、virtualenv、詩の最高の機能を統合します。 Rust を使用して構築された uv は、速いだけでなく非常に効率的であり、依存関係の管理から仮想環境の作成まですべてを簡素化します。

紫外線の目的

一言で言えば、UV は統合です。 1 つの統一されたエクスペリエンスを実現できるのに、複数のツールを切り替える必要はありません。これは、Python 開発からの摩擦を取り除き、より一貫性があり、より迅速にプロジェクトを管理する方法を提供することを目的としています。そしてそれはまた猛烈に速いです!それは動的な管理のための新たな扉を開きます


1. インライン スクリプト メタデータを備えた移植可能なコード

依存関係について話しましょう

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
    

適切なコマンドを選択すると、プロジェクトが適切に管理され、共有やデプロイが簡単になります。


3. 再現性を確保するためにバージョンをロックする

アップデートによりコードが壊れてしまったことがありますか?

今日はコードが機能しても、明日にはパッケージが更新されるために機能しなくなるという経験は誰しもあるでしょう。 uv を使用すると、パッケージのバージョンをロックして一貫性と再現性を確保することでこれを防ぐことができます:

[tool.uv]
exclude-newer = "2023-10-16T00:00:00Z"

こうすることで、依存関係の新しいバージョンがリリースされても、プロジェクトは安定したままになります。サプライズを用意できない長期プロジェクトに最適です!


4. Python のバージョンの管理

異なるプロジェクト、異なる Python バージョン?問題ない!

多くの開発者は、異なる 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 が処理します。


5. 面倒なピップにさよならを言う

それは pip ですが、より速く、より優れています

uv は、ピップのようなエクスペリエンスを提供しますが、パフォーマンスはターボチャージャー付きです。パッケージのインストールは簡単です:

$ uv pip install flask

オプションの依存関係を追加するか、GitHub リポジトリから直接インストールする必要がありますか?汗をかかないでください:

$ uv pip install 'torch>=1.10.0' "git https://github.com/astral-sh/ruff"

インストールに時間がかかるのを待つ必要はもうありません。UV は作業を迅速かつ効果的に実行します。


6. CLI ツールをグローバルかつ簡単に管理

黒からラフまで、ツールを手間なく入手

コードをリンティングする場合でも、ファイルをフォーマットする場合でも、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 ドキュメントを確認してください。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/thomas_bury_b1a50c1156cbf/mastering-python-project-management-with-uv-part1-its-time-to-ditch-poetry-3bi0?1 侵害がある場合は、 Study_golang@163 .comdelete に連絡してください
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3