🦒

Powershellでuvコマンドエラー

に公開

はじめに

Windows powershell上でPythonの環境構築を行った所、uvインストール後のコマンド実行時にエラーが発生した。対処内容をログとして残しておく。

環境

・Windows11
・Powershell

手順

1.Powershellにログイン

2.uvインストール

公式ドキュメント(https://docs.astral.sh/uv/getting-started/installation/) に従いインストール

実行結果

PS C:\Users\ユーザ名> powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"                                                             Downloading uv 0.6.14 (x86_64-pc-windows-msvc)
Installing to C:\Users\ユーザ名\.local\bin
  uv.exe
  uvx.exe
everything's installed!

To add C:\Users\ユーザ名\.local\bin to your PATH, either restart your shell or run:

    set Path=C:\Users\ユーザ名\.local\bin;%Path%   (cmd)
    $env:Path = "C:\Users\ユーザ名\.local\bin;$env:Path"   (powershell)

エラーなし。成功?

インストール確認

PS C:\Users\ユーザー名> uv --version
uv : 用語 'uv' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプ
ログラムの名前として認識されません。名前が正しく記述されていることを確認し、パス
が含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:1
+ uv --version
+ ~~
    + CategoryInfo          : ObjectNotFound: (uv:String) [], CommandNotFoundEx
   ception
    + FullyQualifiedErrorId : CommandNotFoundException

エラー発生。調べてみると対象のパスを環境変数に追加すれば良いと出てくる。

環境変数の確認
ひとまず現状の環境変数を確認してみる。

PS C:\Users\ユーザ名> $ENV:Path.Split(";")
C:\Program Files\Common Files\Oracle\Java\javapath
C:\Program Files (x86)\Common Files\Oracle\Java\java8path
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
…
C:\Users\ユーザ名\AppData\Local\Programs\Python\Python312\
C:\Users\ユーザ名\AppData\Local\Microsoft\WindowsApps
C:\Program Files\heroku\bin

uvに関連するものは無い? ただ何のパスを追加すれば良いか分からない。

インストール時のログを見返してみると「C:\Users\ユーザ名.local\bin」配下にuvがインストールされているように見える。環境変数に追加してみる。

PS C:\Users\ユーザ名> $ENV:Path+=";C:\Users\ユーザ名\.local\bin"
PS C:\Users\ユーザ名> uv --version
uv 0.6.14 (a4cec56dc 2025-04-09)

エラー解消してuvコマンドが使えるようになった。上記は一時的設定で再起動すると消えてしまうため、永続的設定もしておく。

PS C:\Users\ユーザ名> $new_dir = "C:\Users\ユーザ名\.local\bin"
PS C:\Users\ユーザ名> $new_path = [Environment]::GetEnvironmentVariable("Path", "User")
PS C:\Users\ユーザ名> $new_path += ";$new_dir"
PS C:\Users\ユーザ名> [Environment]::SetEnvironmentVariable("Path", $new_path, "User")
PS C:\Users\ユーザ名>

Powershell再起動

PS C:\Users\ユーザ名> uv --version
uv 0.6.14 (a4cec56dc 2025-04-09)

再起動後もuvコマンドが問題無く実行可能。永続設定の確認も完了。

あとがき

PATHの設定は見た事があったが、設定値として何を指定すれば良いかがすぐには分からなかった。
よくよく見たら環境変数の設定をしなくても、shellを再起動するだけでOKだった?

To add C:\Users\ユーザ名\.local\bin to your PATH, either restart your shell or run:

    set Path=C:\Users\ユーザ名\.local\bin;%Path%   (cmd)
    $env:Path = "C:\Users\ユーザ名\.local\bin;$env:Path"   (powershell)

参照

Windows環境変数の設定方法
https://qiita.com/dexcter/items/803506a6c7becf873255
https://qiita.com/gx3n-inue/items/00ee48996e973050a440

Discussion