Skip to content

ツールの使用

多くのPythonパッケージは、ツールとして使用できるアプリケーションを提供しています。uvは、ツールを簡単に呼び出し、インストールするための専門的なサポートを提供します。

ツールの実行

uvxコマンドは、ツールをインストールせずに呼び出します。

例えば、ruffを実行するには:

$ uvx ruff

Note

これは正確には次のコマンドと同等です:

$ uv tool run ruff

uvxは便宜上のエイリアスとして提供されています。

ツール名の後に引数を指定できます:

$ uvx pycowsay hello from uv

  -------------
< hello from uv >
  -------------
   \   ^__^
    \  (oo)\_______
       (__)\       )\/\
           ||----w |
           ||     ||

uvxを使用する場合、ツールは一時的で隔離された環境にインストールされます。

Note

ツールをプロジェクトで実行し、ツールがプロジェクトのインストールを必要とする場合(例:pytestmypyを使用する場合)、uvxの代わりにuv runを使用することをお勧めします。そうしないと、ツールはプロジェクトから隔離された仮想環境で実行されます。

プロジェクトがフラットな構造を持っている場合(例:モジュールにsrcディレクトリを使用せず、プロジェクト自体がインストールを必要としない場合)、uvxを使用しても問題ありません。この場合、ツールのバージョンをプロジェクトの依存関係に固定したい場合にのみuv runを使用することが有益です。

パッケージ名が異なるコマンド

uvx ruffが呼び出されると、uvはruffコマンドを提供するruffパッケージをインストールします。ただし、パッケージ名とコマンド名が異なる場合があります。

--fromオプションを使用して、特定のパッケージからコマンドを呼び出すことができます。例:httpieが提供するhttp

$ uvx --from httpie http

特定のバージョンの要求

特定のバージョンでツールを実行するには、command@<version>を使用します:

$ uvx ruff@0.3.0 check

最新バージョンでツールを実行するには、command@latestを使用します:

$ uvx ruff@latest check

--fromオプションを使用してパッケージバージョンを指定することもできます。上記のように:

$ uvx --from 'ruff==0.3.0' ruff check

または、バージョン範囲を制約するには:

$ uvx --from 'ruff>0.2.0,<0.3.0' ruff check

@構文は正確なバージョン以外には使用できないことに注意してください。

異なるソースの要求

--fromオプションを使用して、代替ソースからインストールすることもできます。

例えば、gitから取得するには:

$ uvx --from git+https://github.com/httpie/cli httpie

特定の名前付きブランチから最新のコミットを取得することもできます:

$ uvx --from git+https://github.com/httpie/cli@master httpie

または特定のタグを取得することもできます:

$ uvx --from git+https://github.com/httpie/cli@3.2.4 httpie

さらには特定のコミットを取得することもできます:

$ uvx --from git+https://github.com/httpie/cli@2843b87 httpie

プラグインを持つコマンド

追加の依存関係を含めることができます。例:mkdocsを実行する際にmkdocs-materialを含めるには:

$ uvx --with mkdocs-material mkdocs --help

ツールのインストール

ツールを頻繁に使用する場合、uvxを繰り返し呼び出す代わりに、永続的な環境にインストールし、PATHに追加することが便利です。

Tip

uvxuv tool runの便利なエイリアスです。他のツールと対話するためのコマンドはすべてuv toolプレフィックスが必要です。

ruffをインストールするには:

$ uv tool install ruff

ツールがインストールされると、その実行可能ファイルはPATHにあるbinディレクトリに配置され、uvなしでツールを実行できるようになります。PATHにない場合は警告が表示され、uv tool update-shellを使用してPATHに追加できます。

ruffをインストールした後、次のように利用可能になります:

$ ruff --version

uv pip installとは異なり、ツールをインストールしてもそのモジュールは現在の環境で利用できません。例えば、次のコマンドは失敗します:

$ python -c "import ruff"

この隔離は、ツール、スクリプト、およびプロジェクトの依存関係間の相互作用と競合を減らすために重要です。

uvxとは異なり、uv tool installは_パッケージ_に対して操作を行い、ツールが提供するすべての実行可能ファイルをインストールします。

例えば、次のコマンドはhttphttps、およびhttpieの実行可能ファイルをインストールします:

$ uv tool install httpie

さらに、パッケージバージョンを--fromなしで含めることができます:

$ uv tool install 'httpie>0.1.0'

同様に、パッケージソースについても:

$ uv tool install git+https://github.com/httpie/cli

uvxと同様に、インストールには追加のパッケージを含めることができます:

$ uv tool install mkdocs --with mkdocs-material

ツールのアップグレード

ツールをアップグレードするには、uv tool upgradeを使用します:

$ uv tool upgrade ruff

ツールのアップグレードは、ツールのインストール時に提供されたバージョン制約を尊重します。例えば、uv tool install ruff >=0.3,<0.4の後にuv tool upgrade ruffを実行すると、Ruffは>=0.3,<0.4の範囲内の最新バージョンにアップグレードされます。

バージョン制約を置き換えるには、uv tool installを使用してツールを再インストールします:

$ uv tool install ruff>=0.4

すべてのツールをアップグレードするには:

$ uv tool upgrade --all

次のステップ

uvでツールを管理する方法の詳細については、ツールの概念ページとコマンドリファレンスを参照してください。

または、プロジェクトで作業する方法を学んでください。