AIパーソナル・ラーニング
と実践的なガイダンス
豆包Marscode1

uv共通コマンド

Python エコは、古典的なパッケージ管理ツールから環境管理ツールまで、決して不足はしていない。 pipそしてvirtualenv まで pip-toolsそしてcondaの近代化である。 PoetryそしてPDM などなど。それぞれのツールには得意分野があるが、開発者のツールチェーンが断片的で複雑なものになることも多い。

さて、ここからは Astral 有名企業 Python リンター Ruff (の生みの親である。 uv クロッシングは新たな可能性を切り開いた。この製品は Rust この言語で書かれたツールは、次のようなものを目指している。 高速、統一、開発者フレンドリー Python パッケージ・プロジェクトマネージャー.その目的は明確だ。 Rust エコロジカル・サウンズ Cargo 同社の成功経験は、ワンストップ・ソリューションを提供する。uv 高速なだけでなく、環境管理、パッケージのインストール、依存関係の解決、プロジェクト管理なども統合されている。

なぜUVなのか?

既存のツールとの比較uv より現代的で効率的な代替案を提供する:

  1. 大幅なスピードアップをベースにしている。 Rust コンパイル時の最適化と効率的な並行処理。uv 依存性の解決やパッケージのインストールといった一般的な操作では、以下のような従来のツールよりも高速である。 pip もしかしたら Poetryこれは多くの場合、何桁も速くなる。また、効率的なグローバル・キャッシュ・メカニズムが組み込まれているため、繰り返しの操作もほとんど瞬時に行える。この背後には Rust 言語機能(メモリー安全性による大胆不敵な並行処理など)と高品質な基礎ライブラリー(たとえば TokioそしてReqwest) クレジット
  2. 完全な機能統合::uv 開発者が手にする "スイスアーミーナイフ "となることを意図しており、仮想環境の作成と管理から、依存関係(ネイティブサポート)のインストールとロックダウンまで、すべてをカバーしている。 pyproject.toml適合 requirements.txt)から、スクリプトの実行、グローバルツールの管理、さらには特定の Python 完全な開発プロセスのバージョン。
  3. 現代のプロジェクト管理ネイティブ・サポート pyproject.toml (PEP517/518/621規格)である。 Python プロジェクトの事実上の標準プロフィール。uv 依存関係のグルーピング(開発依存関係など)を明確に処理し、クロスプラットフォームを生成する能力 uv.lock ロックファイル。このロックファイルは、すべての直接および間接的な依存関係の特定のバージョンとソースを正確に記録し、完全に一貫した環境を、いつでも、どのマシン上でも再構築できるようにし、真に決定論的なビルドを実現します。
  4. 良好な互換性::uv へのリンクを提供する。 pip 互換性の高いコマンド・インターフェースuv pip ...を理解することができる。 requirements.txt ファイル形式を使用することで、既存のプロジェクトを uv 手続きは比較的スムーズだ。
  5. アクティブな開発と未来:: 記 Astral を使用して、積極的にメンテナンスと迅速な反復を行います。 MIT オープンソースライセンス。コミュニティーの高い関心、大きな発展の可能性、そして有望な未来。

利用する uv開発者も同様の経験をすることになる。 Node.js ( npm / yarn / pnpm または Rust ( Cargo )は、流動的で統一された依存関係管理ワークフローである。

UVの設置

取り付け uv 非常に簡単です。公式には、提供されているインストールスクリプトを使用することを推奨している。 Python 環境。もちろん pip やSystem Package Managerも有効な選択肢である。

  • 推奨方法(クロスプラットフォーム・スクリプティング)::
    # macOS / Linux (bash, zsh, etc.)
    curl -LsSf https://astral.sh/uv/install.sh | sh
    # Windows (PowerShell)
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    

    銘記する公式スクリプトはデフォルトで uv ユーザー・ディレクトリの特定の場所にインストールする(例えば Linux / macOS な ~/.uv/bin もしかしたら Windows な %LOCALAPPDATA%\uv\bin通常、システム・ディスク(たとえば C: (ディスク)。

  • pipを使う(既存のPython環境が必要)::
    pip install uv
    # 或推荐使用 pipx 进行隔离安装
    # pipx install uv
    

    もし Python 環境または pipx 環境そのものはシステムディスクにはありません。 uv 通常は相手の位置にも追従する。これは PIPX_HOME 制御する環境変数 pipx のインストール・パスは

  • システムパッケージマネージャの使用(例)::
    # macOS (Homebrew)
    brew install uv
    # Windows (Scoop)
    # 可以先将 Scoop 本身安装到非系统盘,然后用它安装 uv
    scoop install uv
    # Arch Linux
    pacman -S uv
    

    の場合のように Scoop このようなパッケージ・マネージャーは、それ自体がシステム以外のディスクに設定され、インストールされるアプリケーション( uv)も通常同じドライブにインストールされる。

  • カーゴを使う(Rust環境が必要)::
    cargo install uv --locked --git https://github.com/astral-sh/uv
    

    uv にインストールされます。 Cargo な bin カタログ。これは CARGO_HOME 環境変数は .cargo ディレクトリ(ダウンロードした crates およびコンパイルされた製品)を非システムディスクに移行した。

インストールが完了したら uv --version もしかしたら uv help をクリックして、インストールが成功したことを確認する。

UVデータの保存場所の設定(詳細)

デフォルトではuv をキャッシュし、ダウンロードします。 Python バージョンと同様に uv tool install インストールされたグローバルツールは、ユーザーディレクトリのデフォルトの場所(通常はシステムドライブ上)に保存されます。他のドライブ(たとえば D: ディスク)の容量を節約するため、あるいは SSD を設定することで設定できる。環境変数それを実現するために


主な環境変数をいくつか紹介しよう:

  • UV_CACHE_DIRコントロール uv キャッシュ・ディレクトリの場所。キャッシュには、ダウンロードされたパッケージ・ファイル、ビルドされた wheel など、より多くのスペースを取る可能性がある。
  • UV_PYTHON_INSTALL_DIR:: コントロール・スルー uv python install ダウンロードと管理 Python インタープリターをインストールする場所。
  • UV_TOOL_INSTALL_DIR:: コントロール・スルー uv tool install グローバル・インストール Python 道具とその隔離された環境の保管場所。

環境変数の設定方法(例):

をすべて組み合わせることが目標だとする。 uv データは D:\uvdata カタログ

  • Windows (PowerShell - 現在のセッションでのみ有効な一時的な設定):
    $env:UV_CACHE_DIR = "D:\uvdata\cache"
    $env:UV_PYTHON_INSTALL_DIR = "D:\uvdata\python"
    $env:UV_TOOL_INSTALL_DIR = "D:\uvdata\tools"
    # 之后在此会话中运行 uv 命令,数据将写入新位置
    uv pip install requests
    
  • Windows (システム環境変数 - 永続的な設定):
    1. ある Windows 検索バーで「環境変数」を探す。
    2. システム環境変数の編集」をクリックする。
    3. システムのプロパティ」ダイアログボックスで、「環境変数...」ボタンをクリックする。ボタンをクリックします。
    4. ユーザー変数 "または "システム変数 "エリア(全ユーザーに必要な場合を除き、ユーザー変数の使用を推奨)で、"新規作成 "をクリックする。...".".
    5. 変数名を入力する(例 UV_CACHE_DIRなど)および変数値(たとえば D:\uvdata\cache).
    6. 他の2つの変数についてもこれを繰り返す。
    7. OK」をクリックしてすべてのダイアログを閉じる。
    8. 核心:: 必須再オープン PowerShell またはコマンド・プロンプト・ウィンドウで、新しい環境変数を有効にする。
  • Linux / macOS (bash/zsh - 一時的な設定):
    export UV_CACHE_DIR="/path/to/non_system_drive/uvdata/cache"
    export UV_PYTHON_INSTALL_DIR="/path/to/non_system_drive/uvdata/python"
    export UV_TOOL_INSTALL_DIR="/path/to/non_system_drive/uvdata/tools"
    # 之后在此会话中运行 uv 命令
    uv pip install requests
    
  • Linux / macOS(常設):
    トポロジカル export コマンドをシェル設定ファイルに追加する(例えば ~/.bashrc~/.zshrc~/.profileを実行する。 source ~/.your_config_file またはターミナルを再起動すると、設定が有効になります。

重要な注意事項:

  • これらの環境変数を設定した後uv 指定されたパスは自動的に使用される。これらのディレクトリが存在し uv 書き込みアクセス権を持つ。
  • 仮想環境.venvポジションuv venv のデフォルトプロジェクトのルートディレクトリ作成 .venv フォルダに保存される。その結果プロジェクト自体がシステム以外のディスク(たとえば D:\myproject)であれば .venv 当然、このディスクにも収録される。.のリストを提供する必要は通常ない。 .venv システムディスクを避けるために、パスを個別に設定する。もちろん、以下の方法でシステムディスクを回避することもできます。 uv venv /path/to/custom/env 仮想環境を作成する場所を明示的に指定するが、これはシステム・ディスク・ストレージの問題を解決するというよりも、環境パスをカスタマイズするためのものである。

これらの環境変数を適切に設定することで uv そのため、よりスペースに余裕のある場所や、より適切な保管場所へと誘導する。

UVコアコンセプト

使用中 uv プロジェクトを管理する際には、以下の核となる概念を理解することが重要である:

  • pyproject.tomlモダン Python プロジェクトの標準プロフィール(PEP 517/518/621に基づく)。uv プロジェクトのメタデータ(名前、バージョン、説明など)を定義するために使用します。 Python バージョンrequires-python) とプロジェクトの主な依存関係 (dependencies)およびオプションの依存グループ(例えば dev-dependencies).プロジェクト・コンフィギュレーションの "唯一の真実の情報源 "である。
  • uv.lock:: 記 uv 自動的に生成・管理されるロックされたファイル。プロジェクトのすべての依存関係(間接的な依存関係を含む)の特定のバージョン番号とソースハッシュを正確に記録します。その中心的な価値は、以下を確実にすることである。環境の再現性いつでも、どこでも、同じものをベースにしている。 uv.lock ファイルで依存関係をインストールすると、まったく同じパッケージの組み合わせになる。このファイルは手動で編集してはならない.
  • 仮想環境.venv)::uv 仮想環境の利用を簡略化することができる。デフォルトでは、プロジェクトのルート・ディレクトリに .venv プロジェクトの依存関係を格納するための、隔離された環境のことである。ほとんどの uv コマンド(例 addsyncrun)が自動的に検出され、この環境でオペレーションが実行される。 Python 環境の汚染。

PythonプロジェクトをUVで管理する

以下は、完全なプロセスを通じてのデモンストレーションである。 uv を作成して管理する。 Python プロジェクト

プロジェクトの初期化 (uv init)

利用する uv init コマンドは、新しいプロジェクトの基本構造を素早く構築することができる。

# 确保在期望的驱动器上操作,例如在 D: 盘
# D:
# mkdir my_uv_project
# cd my_uv_project
# 初始化名为 my_uv_project 的项目
uv init my_uv_project
cd my_uv_project

実施後uv になる。 my_uv_project ディレクトリが生成される:

  • .git/ 歌で応える .gitignore自動初期化 Git リポジトリを提供し、共通の Python スポーツイベント .gitignore ドキュメンテーション
  • .python-versionプロジェクトの提案または依頼の文書 Python バージョン 3.12).uv を選択またはインストールするために、このドキュメントを参照してください。 Python 通訳。
  • pyproject.tomlプロジェクト名、バージョン、説明を含む、Python バージョン要件と空 dependencies リスト
  • README.md空の README ドキュメンテーション
  • src/my_uv_project/__init__.py基本的なソースコードの構造(もし src (レイアウト)。またはシンプルな hello.py ファイルの例。
# pyproject.toml 示例内容 (可能略有不同)
[project]
name = "my-uv-project"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12" # 根据系统情况或指定版本生成
dependencies = []
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
# uv 可能还会添加 tool.uv 相关配置

環境の作成と同期 (uv venvuv sync)

プロジェクトが初期化された後、仮想環境を作成し、依存関係の状態を同期させる必要があります(空の依存関係であっても、最初の同期で uv.lock).

  1. 仮想環境 (uv venv)::
    たとえ uv sync を自動的に作成します。 .venvしかし、明示的に作成することもできる:

    # 创建默认的 .venv 环境 (uv 会根据 .python-version 或系统查找合适的 Python)
    # 这个 .venv 会在当前项目目录下创建
    uv venv
    # 创建时指定 Python 版本
    uv venv --python 3.11
    # 指定自定义环境名称 (不常用,因为 uv 生态默认与 .venv 配合)
    uv venv my_custom_env
    

    マニュアルの操作環境が必要な場合(例えば uv 管理ツール)をアクティブにする必要があります:

    # Linux/macOS
    source .venv/bin/activate
    # Windows (PowerShell)
    .venv\Scripts\Activate.ps1
    # Windows (CMD)
    .venv\Scripts\activate.bat
    

    労働大半の人にとって uv コマンドaddremovesyncrun など)。環境の手動起動は通常必要ないuv は自動的に .venv.

  2. 同期環境(uv sync)::
    これは、仮想環境の状態を pyproject.toml(経由 uv.lock 文書)または requirements.txt このファイルは正確に一貫している。最初に実行されたときは、次のようになる:

    • 取り出す pyproject.toml 依存関係の定義の
    • 依存関係の解決を行う。
    • 生成 uv.lock ドキュメンテーション
    • ある .venv (当初はプロジェクトそのもののみが編集可能なパッケージとして利用できる)。
    # 在项目根目录运行
    uv sync
    

    実行後 .venv ディレクトリが作成または更新され uv.lock ドキュメンテーション

依存関係の管理 (uv adduv removeuv lock)

これは uv 最も一般的に使用される関数で、以下の基準に基づき使用が推奨される。 pyproject.toml ワークフローの

  • 依存関係 (uv add):
    パッケージを pyproject.toml な [project.dependencies] セクションにインストールされ、自動的に .venv 環境。同時に uv.lock 更新もされる。

    # 添加最新稳定版的 pandas
    uv add pandas
    # 添加 requests,并指定版本约束
    uv add "requests>=2.20,<3.0"
    # 添加开发依赖 (如测试框架 pytest),会写入 [tool.uv.dev-dependencies]
    uv add pytest --dev
    uv add ruff --dev
    # 从 Git 仓库添加依赖
    uv add git+https://github.com/psf/requests.git
    # 添加本地路径的包 (以可编辑模式安装)
    uv add -e ../my_local_library
    
  • 依存関係を削除するuv remove):
    をとおして pyproject.toml から指定されたパッケージを削除します。 .venv 環境をアンインストールし、不要になったダウンストリームの依存関係をアンインストールする。

    # 移除 pandas
    uv remove pandas
    # 移除开发依赖 pytest
    uv remove pytest --dev
    
  • 依存関係の更新:
    • すべての依存関係を pyproject.toml の制約で許可された最新バージョンを再生成する。 uv.lock::
      # 1. 更新 lock 文件
      uv lock --upgrade
      # 2. 应用 lock 文件更新到环境
      uv sync
      
    • 特定のパッケージのみを最新バージョンにアップデートする:
      # 方法一:指定包更新 lock 文件,然后同步
      uv lock --upgrade-package requests
      uv sync
      # 方法二:直接 'add' 最新版 (也会更新 lock 和环境)
      uv add requests@latest
      
  • マニュアル編集 pyproject.toml 女帝:
    を直接修正した場合 pyproject.toml ファイルの依存関係リストを変更するには、以下の2つのステップを実行して変更を有効にする必要があります:

    1. uv lock :: に基づく pyproject.toml 新しいコンテンツは、依存関係を再計算し、更新する。 uv.lock ドキュメンテーション
    2. uv sync :: ウィル uv.lock ファイルの状態は、以下のように同期される。 .venv 仮想環境。

コードとコマンドを実行する (uv run)

uv run であります uv 非常に便利な機能が提供されている。この機能を使えば uv 管理された仮想環境での実行 Python スクリプトまたは任意のコマンド。事前に手動で環境を有効にする必要がない.これは uv 合理化されたワークフローの重要な特徴のひとつであり、使いこなす価値は十分にある。

動作原理:

を実行すると uv run <command> [args...] 時間だ:

  1. 環境の自動検出::uv のカレント・ディレクトリと親ディレクトリを自動的に見つける。 .venv 仮想環境。
  2. 内部構成環境の実行:
    • に関して uv run python your_script.py そのような命令だ。uv を直接呼び出します。 .venv ディレクトリの Python インタープリター.venv/bin/python もしかしたら .venv/Scripts/python.exe)でスクリプトを実行する。
    • に関して uv run pytest tests/ もしかしたら uv run ruff format . そのような命令だ。uv 必ずコマンドを実行する子プロセスの内部その間に .venv/bin (または .venv/Scripts)ディレクトリがシステムに追加される。 PATH を環境変数の先頭に追加する。こうすることで、環境を有効化しなくても、オペレーティング・システムは仮想環境にインストールされたコマンドライン・ツール(たとえば pytestruff).

Pythonファイルを実行するには?

プロジェクトの Python ファイル(例えば src/my_package/main.py または app.py)が推奨されている:

uv run python src/my_package/main.py
# 或者
uv run python app.py

ゆうせい:

  • 手動による起動は不要を入力する必要がなくなる。 source .venv/bin/activate もしかしたら .venv\Scripts\Activate.ps1 の手間がかかる。
  • 環境整合性保証コードとツールが常にプロジェクト構成に適した仮想環境で実行されるようにします。
  • CI/CDスクリプトの簡素化自動化されたプロセスでは GitHub ActionsGitLab CIで直接使用できる。 uv run 複雑な環境起動ロジックを扱うことなく、テスト、ビルド、デプロイなどのタスクを実行できます。

もっと見る uv run 典型例:

# 运行安装在环境中的 pytest 测试
uv run pytest tests/
# 运行安装在环境中的 ruff 代码格式化
uv run ruff format .
# 运行任意系统命令,uv 会确保 .venv/bin 在 PATH 中
uv run alembic upgrade head
# 向脚本传递参数
uv run python your_script.py --input data.csv --output results.json

手動でアクティベーションする必要があるのはいつですか?

手動起動 (source activate または同様のコマンド)が大幅に削減された。おそらく、あなたが必要とするのと同じシェル・セッションが主でしょう:

  • 仮想環境に依存する複数のコマンドを頻繁にインタラクティブに実行する(例えば、直接 python インタープリターで pytestそしてまた。 ruff).
  • アクティベーション・スクリプトの設定に依存する特定の環境変数を使用する。 PATH (を除く Python 道具だ。

しかし、ほとんどの日常的な開発作業ではuv run 自動化された環境管理は、より便利で効率的である。

利用する requirements.txt (ワークフロー対応)

たとえ uv おすすめ pyproject.tomlしかし、伝統的な requirements.txt ワークフローを提供する。 pip 互換性のあるコマンドインターフェイスで、より速く。

  • 依存関係をインストールするuv pip install):
    # 安装单个包
    uv pip install flask
    # 从 requirements 文件安装
    uv pip install -r requirements.txt
    # 可以同时指定多个文件
    uv pip install -r requirements.txt -r requirements-dev.txt
    # 安装当前项目 (以可编辑模式)
    uv pip install -e .
    
  • 依存関係のアンインストール (uv pip uninstall):
    uv pip uninstall flask
    # 从文件批量卸载
    uv pip uninstall -r requirements-to-remove.txt
    
  • 依存関係のリストを生成する (uv pip freeze):
    # 输出当前环境安装的所有包 (类似 pip freeze)
    uv pip freeze > requirements.lock.txt # 常用于生成锁定文件
    
  • コンパイルの依存関係uv pip compile) (おすすめ requirements ワークフロー):
    このアプローチは pip-tools.を維持している。 requirements.in ファイル(直接の依存関係のみを含む)を作成し、次に uv の正確なバージョンを生成する。 requirements.txt ファイルをロックする。

    # requirements.in 内容示例:
    # flask
    # requests>=2.25
    # 生成 requirements.txt
    uv pip compile requirements.in -o requirements.txt
    # 为开发环境编译 (假设有 requirements-dev.in)
    # uv pip compile requirements-dev.in -o requirements-dev.txt
    
  • 同期環境(uv pip sync):
    1つまたは複数の requirements.txt 足りないパッケージはインストールされ、冗長なパッケージは削除される。

    # 同步主依赖和开发依赖
    uv pip sync requirements.txt requirements-dev.txt
    
  • インストール済みパッケージの表示 (uv pip listuv pip showuv pip tree):
    uv pip list          # 列出已安装的包和版本
    uv pip show flask    # 显示 flask 包的详细信息
    uv pip tree          # 以树状结构显示依赖关系
    

Pythonバージョンの管理 (uv python)

uv 内蔵ダウンロード、管理、選択 Python に似た機能のバージョンである。 pyenv.(を通して行うことができることを覚えておいてください。 UV_PYTHON_INSTALL_DIR 環境変数はこれらの設定を行う。 Python (取り付け位置)

  • 利用可能なバージョンとインストールされているバージョンの一覧 (uv python list):
    # 列出已安装和当前使用的版本
    uv python list
    # 显示所有可供下载的补丁版本
    # uv python list --all-versions
    # 只显示已安装的版本
    uv python list --only-installed
    
  • Pythonのバージョンをインストールするuv python install):
    # 安装最新的稳定版 (如果尚未安装)
    uv python install
    # 安装特定版本
    uv python install 3.11.5
    # 安装 3.10 系列的最新可用版
    uv python install 3.10
    

    uv はダウンロードした Python 管理ディレクトリ (uv python dir パスは、以下の条件で見ることができる。 UV_PYTHON_INSTALL_DIR インパクト)。

  • Pythonのバージョンをアンインストールするuv python uninstall):
    uv python uninstall 3.10.8
    # 卸载 3.11 系列所有已安装版本
    uv python uninstall 3.11
    
  • プロジェクトのPythonバージョン(uv python pin):
    現在のディレクトリで作成または更新 .python-version ファイルを使うことを宣言している。 Python バージョン

    uv python pin 3.11
    

    その先 uv venvuv runuv sync などのコマンドは、優先的にこのバージョンを見つけて使用する。

  • Pythonインタプリタ(uv python find):
    # 查找匹配 3.12 的 Python 解释器路径
    uv python find 3.12
    

グローバルツールの管理uv tool)

uv それは次のようなものだ。 pipx いつものように、グローバルな Python CLI ツールは、依存関係の衝突を避けるために、それぞれを別の環境に隔離する。(同様に、ツールの保存場所は UV_TOOL_INSTALL_DIR 環境変数の設定)

  • ツールの実行(アドホック導入など) uv tool run もしかしたら uvx):
    必要であれば)ツールを一時的にダウンロードして実行し、実行後は保持しない。これは一度しか使用しないツールには非常に便利です。uvx であります uv tool run 省略形。

    # 运行 ruff 检查当前目录,临时下载 ruff
    uv tool run ruff check .
    # 使用简写 uvx
    uvx ruff check .
    # 如果命令名 (http) 和包名 (httpie) 不同,使用 --from
    uvx --from httpie http https://example.com
    
  • グローバルツールのインストールuv tool install):
    ツールとその依存関係を uv 管理されたスタンドアロン環境を構築し、その実行ファイルをユーザーパスにリンクする(ターミナルを再起動するか、手動で PATH (直接呼び出せるようにするため)。これは pipx install.

    uv tool install black
    uv tool install httpie
    

    一度インストールすれば、理論的にはどこからでも直接実行できる。 black . もしかしたら http https://example.com.

  • インストールされているツールの一覧 (uv tool list):
    uv tool list
    
  • アップグレードツールuv tool upgrade):
    uv tool upgrade black
    # 升级所有已安装工具
    # uv tool upgrade --all
    
  • アンインストールツールuv tool uninstall):
    uv tool uninstall black
    
  • ツールのインストール・ディレクトリ (uv tool dir):
    実証する uv グローバル・ツールとその環境が保存されるルート・パス。 UV_TOOL_INSTALL_DIR インパクト)。

キャッシュの管理 (uv cache)

uv パッケージのダウンロードとビルドプロセスを高速化するためにグローバルキャッシュを使用します。(キャッシュの場所は UV_CACHE_DIR 環境変数の設定)

  • キャッシュのクリア (uv cache clean):
    すべて削除 uv キャッシュされたコンテンツ。これは、潜在的なキャッシュ汚染の問題を解決したり、ディスク領域を解放するために使用することができます。

    uv cache clean
    
  • キャッシュ・ディレクトリを表示する (uv cache dir):
    現在を見る uv キャッシュファイルが保存される場所。 UV_CACHE_DIR インパクト)。

単一スクリプトによるプロジェクト管理

単純なウィジェットやスクリプトではuv 非常に軽量な管理アプローチをサポート:プロジェクトのメタデータと依存関係を直接 Python をスクリプトヘッダ内の特別なコメントブロックに記述する。

  1. 初期化スクリプトuv init --script):
    # 创建一个名为 my_script.py 的脚本,并指定 Python 版本要求
    uv init --script my_script.py --python ">=3.10"
    

    これは my_script.py 以下のようなコメント・ブロックがファイルの先頭に生成される:

    #!/usr/bin/env python
    # /// script
    # requires-python = ">=3.10"
    # dependencies = [
    # ]
    # ///
    import sys
    def main() -> None:
    print(f"Hello from {sys.argv[0]}!")
    if __name__ == "__main__":
    main()
    
  2. スクリプトの依存関係の追加と削除 (uv add/remove --script):
    直接使用可能 add もしかしたら remove と連携している。 --script パラメータを使用して、スクリプトヘッダの依存関係リストを修正することができる。

    # 为 my_script.py 添加 requests 依赖
    uv add --script my_script.py requests
    # 从 my_script.py 移除 requests 依赖
    uv remove --script my_script.py requests
    

    これらのコマンドは、スクリプトファイルヘッダーの dependencies リスト

  3. スクリプトを実行するuv run):
    直接使用 uv run スクリプトは実行できる。

    uv run my_script.py
    

    uv は、スクリプトのヘッダーにあるメタデータを自動的に読み取り、必要に応じて一時的な仮想環境を作成し、そこで宣言された依存関係をインストールしてからスクリプトを実行する。このアプローチは、単一の自己完結的な Python ツールスクリプト。

今後の展望と提言

uv 野心的で非常に急成長しているプロジェクトであることは間違いない。このプロジェクトは Rust パフォーマンス上の利点と、よくデザインされた統一インターフェースにより、次のような大幅な改善が期待できる。 Python 開発者のパッケージと環境管理の経験。そのコアバリューはテンポ歌で応える適合.

(躊躇なく uv 比較的歴史が浅く、エコシステム(IDEとの深い統合やサードパーティのチュートリアル・リソースなど)はまだ急速に成長しており、その活発な反復により、コマンドや動作がバージョン間でわずかに調整されることがある(変更履歴に目を通すことをお勧めする)。

だが、当分の間は。uv コア機能は非常に安定しており、堅牢だ。

提案:

  • に関して着信 Python スポーツイベントを直接採用することを強く推奨する。 uv.最初から爽やかで効率的な経営体験を提供する。
  • そのような方々のために既存のツールチェーンに苦しんでいる。 pip + virtualenv + pip-tools (複雑さやパフォーマンスの問題開発者とチームのuv は非常に魅力的な選択肢であり、評価と移行に時間を投資して試す価値がある。
  • を深く愛用している人たちへ Poetry もしかしたら PDM 複雑なプラグインシステム、きめ細かなリリースプロセス管理など)、特定の高度な機能に依存している場合、移行には、以下の点を考慮しながら、より慎重な評価が必要になるかもしれない。 uv スピードとシンプルさがもたらすものと、特定の機能が失われる可能性があるものとの比較だ。

uv になりつつある。 Python 開発ワークフローにおいて侮れない存在である。 ruff のようなものだ。 Python このコミュニティは、ツール革新の新たなラウンドを引き起こした。その将来は、私たちの継続的な注目に値する。

無断転載を禁じます:チーフAIシェアリングサークル " uv共通コマンド
ja日本語