Python
エコは、古典的なパッケージ管理ツールから環境管理ツールまで、決して不足はしていない。 pip
そしてvirtualenv
まで pip-tools
そしてconda
の近代化である。 Poetry
そしてPDM
などなど。それぞれのツールには得意分野があるが、開発者のツールチェーンが断片的で複雑なものになることも多い。
さて、ここからは Astral
有名企業 Python
リンター Ruff
(の生みの親である。 uv
クロッシングは新たな可能性を切り開いた。この製品は Rust
この言語で書かれたツールは、次のようなものを目指している。 高速、統一、開発者フレンドリー Python
パッケージ・プロジェクトマネージャー.その目的は明確だ。 Rust
エコロジカル・サウンズ Cargo
同社の成功経験は、ワンストップ・ソリューションを提供する。uv
高速なだけでなく、環境管理、パッケージのインストール、依存関係の解決、プロジェクト管理なども統合されている。
なぜUVなのか?
既存のツールとの比較uv
より現代的で効率的な代替案を提供する:
- 大幅なスピードアップをベースにしている。
Rust
コンパイル時の最適化と効率的な並行処理。uv
依存性の解決やパッケージのインストールといった一般的な操作では、以下のような従来のツールよりも高速である。pip
もしかしたらPoetry
これは多くの場合、何桁も速くなる。また、効率的なグローバル・キャッシュ・メカニズムが組み込まれているため、繰り返しの操作もほとんど瞬時に行える。この背後にはRust
言語機能(メモリー安全性による大胆不敵な並行処理など)と高品質な基礎ライブラリー(たとえばTokio
そしてReqwest
) クレジット - 完全な機能統合::
uv
開発者が手にする "スイスアーミーナイフ "となることを意図しており、仮想環境の作成と管理から、依存関係(ネイティブサポート)のインストールとロックダウンまで、すべてをカバーしている。pyproject.toml
適合requirements.txt
)から、スクリプトの実行、グローバルツールの管理、さらには特定のPython
完全な開発プロセスのバージョン。 - 現代のプロジェクト管理ネイティブ・サポート
pyproject.toml
(PEP517/518/621規格)である。Python
プロジェクトの事実上の標準プロフィール。uv
依存関係のグルーピング(開発依存関係など)を明確に処理し、クロスプラットフォームを生成する能力uv.lock
ロックファイル。このロックファイルは、すべての直接および間接的な依存関係の特定のバージョンとソースを正確に記録し、完全に一貫した環境を、いつでも、どのマシン上でも再構築できるようにし、真に決定論的なビルドを実現します。 - 良好な互換性::
uv
へのリンクを提供する。pip
互換性の高いコマンド・インターフェースuv pip ...
を理解することができる。requirements.txt
ファイル形式を使用することで、既存のプロジェクトをuv
手続きは比較的スムーズだ。 - アクティブな開発と未来:: 記
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 (システム環境変数 - 永続的な設定):
- ある
Windows
検索バーで「環境変数」を探す。 - システム環境変数の編集」をクリックする。
- システムのプロパティ」ダイアログボックスで、「環境変数...」ボタンをクリックする。ボタンをクリックします。
- ユーザー変数 "または "システム変数 "エリア(全ユーザーに必要な場合を除き、ユーザー変数の使用を推奨)で、"新規作成 "をクリックする。...".".
- 変数名を入力する(例
UV_CACHE_DIR
など)および変数値(たとえばD:\uvdata\cache
). - 他の2つの変数についてもこれを繰り返す。
- OK」をクリックしてすべてのダイアログを閉じる。
- 核心:: 必須再オープン
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
コマンド(例add
,sync
,run
)が自動的に検出され、この環境でオペレーションが実行される。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 venv
, uv sync
)
プロジェクトが初期化された後、仮想環境を作成し、依存関係の状態を同期させる必要があります(空の依存関係であっても、最初の同期で uv.lock
).
- 仮想環境 (
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
コマンドadd
,remove
,sync
,run
など)。環境の手動起動は通常必要ない属uv
は自動的に.venv
. - 同期環境(
uv sync
)::
これは、仮想環境の状態をpyproject.toml
(経由uv.lock
文書)またはrequirements.txt
このファイルは正確に一貫している。最初に実行されたときは、次のようになる:- 取り出す
pyproject.toml
依存関係の定義の - 依存関係の解決を行う。
- 生成
uv.lock
ドキュメンテーション - ある
.venv
(当初はプロジェクトそのもののみが編集可能なパッケージとして利用できる)。
# 在项目根目录运行 uv sync
実行後
.venv
ディレクトリが作成または更新されuv.lock
ドキュメンテーション - 取り出す
依存関係の管理 (uv add
, uv remove
, uv 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つのステップを実行して変更を有効にする必要があります:uv lock
:: に基づくpyproject.toml
新しいコンテンツは、依存関係を再計算し、更新する。uv.lock
ドキュメンテーションuv sync
:: ウィルuv.lock
ファイルの状態は、以下のように同期される。.venv
仮想環境。
コードとコマンドを実行する (uv run
)
uv run
であります uv
非常に便利な機能が提供されている。この機能を使えば uv
管理された仮想環境での実行 Python
スクリプトまたは任意のコマンド。事前に手動で環境を有効にする必要がない.これは uv
合理化されたワークフローの重要な特徴のひとつであり、使いこなす価値は十分にある。
動作原理:
を実行すると uv run <command> [args...]
時間だ:
- 環境の自動検出::
uv
のカレント・ディレクトリと親ディレクトリを自動的に見つける。.venv
仮想環境。 - 内部構成環境の実行:
- に関して
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
を環境変数の先頭に追加する。こうすることで、環境を有効化しなくても、オペレーティング・システムは仮想環境にインストールされたコマンドライン・ツール(たとえばpytest
,ruff
).
- に関して
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 Actions
,GitLab 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 list
,uv pip show
,uv 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 venv
,uv run
,uv 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
をスクリプトヘッダ内の特別なコメントブロックに記述する。
- 初期化スクリプト
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()
- スクリプトの依存関係の追加と削除 (
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
リスト - スクリプトを実行する
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
このコミュニティは、ツール革新の新たなラウンドを引き起こした。その将来は、私たちの継続的な注目に値する。