設定ファイル
uvは、プロジェクトレベルおよびユーザーレベルの両方で永続的な設定ファイルをサポートしています。
具体的には、uvは現在のディレクトリまたは最も近い親ディレクトリにある pyproject.toml
または uv.toml
ファイルを検索します。
Note
ユーザーレベルで操作する tool
コマンドの場合、ローカル設定ファイルは無視されます。代わりに、uvはユーザーレベルの設定(例:~/.config/uv/uv.toml
)およびシステムレベルの設定(例:/etc/uv/uv.toml
)からのみ読み取ります。
ワークスペースでは、uvはワークスペースメンバーに定義された設定を無視して、ワークスペースルートで検索を開始します。ワークスペースは単一のユニットとしてロックされるため、設定はすべてのメンバー間で共有されます。
pyproject.toml
ファイルが見つかった場合、uvは [tool.uv]
テーブルから設定を読み取ります。たとえば、永続的なインデックスURLを設定するには、次の内容を pyproject.toml
に追加します:
(そのようなテーブルが存在しない場合、pyproject.toml
ファイルは無視され、uvはディレクトリ階層内の検索を続行します。)
uvは uv.toml
ファイルも検索し、同一の構造に従いますが、[tool.uv]
プレフィックスを省略します。たとえば:
Note
uv.toml
ファイルは pyproject.toml
ファイルよりも優先されるため、ディレクトリに uv.toml
と pyproject.toml
ファイルの両方が存在する場合、設定は uv.toml
から読み取られ、付随する pyproject.toml
の [tool.uv]
セクションは無視されます。
uvはまた、macOSおよびLinuxでは ~/.config/uv/uv.toml
(または $XDG_CONFIG_HOME/uv/uv.toml
)、Windowsでは %APPDATA%\uv\uv.toml
でユーザーレベルの設定を発見し、macOSおよびLinuxでは /etc/uv/uv.toml
(または $XDG_CONFIG_DIRS/uv/uv.toml
)、Windowsでは %SYSTEMDRIVE%\ProgramData\uv\uv.toml
でシステムレベルの設定を発見します。
ユーザーレベルおよびシステムレベルの設定は、Python プロジェクト を定義することを意図しているため、pyproject.toml
形式ではなく uv.toml
形式を使用する必要があります。
プロジェクトレベル、ユーザーレベル、およびシステムレベルの設定ファイルが見つかった場合、設定はマージされ、プロジェクトレベルの設定がユーザーレベルの設定よりも優先され、ユーザーレベルの設定がシステムレベルの設定よりも優先されます。(複数のシステムレベルの設定ファイルが見つかった場合、例:/etc/uv/uv.toml
と $XDG_CONFIG_DIRS/uv/uv.toml
の両方に存在する場合、最初に発見されたファイルのみが使用され、XDGが優先されます。)
たとえば、文字列、数値、またはブール値がプロジェクトレベルおよびユーザーレベルの設定テーブルの両方に存在する場合、プロジェクトレベルの値が使用され、ユーザーレベルの値は無視されます。配列が両方のテーブルに存在する場合、配列は連結され、プロジェクトレベルの設定がマージされた配列の前に表示されます。
環境変数を介して提供される設定は永続的な設定よりも優先され、コマンドラインを介して提供される設定はその両方よりも優先されます。
uvは --no-config
コマンドライン引数を受け入れ、提供された場合、永続的な設定の検出を無効にします。
uvはまた、設定ファイルとして使用する uv.toml
へのパスを受け入れる --config-file
コマンドライン引数を受け入れます。提供された場合、このファイルは発見された_すべての_設定ファイル(例:ユーザーレベルの設定は無視されます)の代わりに使用されます。
設定
利用可能な設定の列挙については、設定リファレンスを参照してください。
.env
uv run
は、dotenv ファイル(例: .env
、 .env.local
、 .env.development
)から環境変数を読み込むことができます。これは dotenvy
クレートによって提供されます。
専用の場所から .env
ファイルを読み込むには、 UV_ENV_FILE
環境変数を設定するか、 --env-file
フラグを uv run
に渡します。
たとえば、現在の作業ディレクトリにある .env
ファイルから環境変数を読み込むには、次のようにします:
--env-file
フラグは複数回提供することができ、後続のファイルが前のファイルで定義された値を上書きします。 UV_ENV_FILE
環境変数を介して複数のファイルを提供するには、パスをスペースで区切ります(例: UV_ENV_FILE="/path/to/file1 /path/to/file2"
)。
dotenv の読み込みを無効にするには(例: UV_ENV_FILE
または --env-file
コマンドライン引数を上書きするため)、 UV_NO_ENV_FILE
環境変数を 1
に設定するか、 --no-env-file
フラグを uv run
に渡します。
同じ変数が環境と .env
ファイルの両方に定義されている場合、環境からの値が優先されます。
pipインターフェースの設定
uv pip
コマンドラインインターフェースを設定するための専用の [tool.uv.pip]
セクションが提供されています。このセクションの設定は uv
名前空間外のコマンドには適用されません。ただし、このセクションの設定の多くには、uv.pip
セクションの値によってオーバーライドされない限り、uv pip
インターフェースにも適用されるトップレベルの名前空間に対応する設定があります。
uv.pip
設定はpipのインターフェースに密接に従うように設計されており、グローバル設定が代替の設計(例:--no-build
)を使用できるようにするために別々に宣言されています。
たとえば、次の pyproject.toml
に index-url
を [tool.uv.pip]
の下に設定すると、uv pip
サブコマンド(例:uv pip install
)にのみ影響し、uv sync
、uv lock
、または uv run
には影響しません: