
uv は Rust で書かれた非常に高速な Python 管理ソフト。
uv はmacOS や Windows でも使えるけど、ここでは Debian 12 で使う場合について書く。
多分、Amazon Linux 2023 とか他のディストリビューションでも同じ手順でいけるはず。
pyenv や、裏で pyenv を使っている asdf は Python のソースをダウンロードしてビルドするので、使えるようになるまでかなりの時間がかかるし、ビルドに必要なかなりのパッケージ追加が必要になる。
対して uv は python-build-standalone のビルド済みバイナリをダウンロードするので高速だし環境も汚さずに済むのが素晴らしい。
確認のために用意した環境
Debian 12を最小セットアップしたマシン
uvを個人用にインストール
公式インストール手順に従うだけ。$HOME/.local/bin
にインストールされる。
- インストール
$ curl -LsSf https://astral.sh/uv/install.sh | sh
curlをインストールしていないならwgetでも代用できる。
$ wget -qO- https://astral.sh/uv/install.sh | sh
- この4つのファイルがインストールされる。
$ ls $HOME/.local/bin/ env env.fish uv uvx
env
とenv.fish
はインストールの最後に表示されるとおり各シェルでパスを通すためのものuvx
は pipx みたいなもの
- 実行ファイルまでのパスを通す
インストールの最後に表示されるように、環境変数PATHにインストールディレクトリを追加するか、bashなら以下のコマンドで実行ファイルへのパスが通る。$ source $HOME/.local/bin/env
source
で読み込んだ場合はログアウトで抜けると保持されないので、$HOME/.bash_profile
に以下を書いておくと再ログインしてもパスが通る。if [ -f ~/.bashrc ]; then . ~/.bashrc fi export PATH=$PATH:$HOME/.local/bin
uvを全ユーザー用にインストール
前述の手順はホームディレクトリにインストールされるので、複数人で使っているLinuxサーバーでは各個人でインストールすることになって不便。
Configuring the uv installer にあるように環境変数 UV_INSTALL_DIR を指定すれば任意の場所にインストールできるので /usr/local/bin/
にインストールすれば全ユーザーが uv を使えるようになって便利。
- 同じ名前のファイルが無いことを確認。
$ ls /usr/local/bin/{uv,uvx} ls: '/usr/local/bin/uv' にアクセスできません: そのようなファイルやディレクトリはありません ls: '/usr/local/bin/uvx' にアクセスできません: そのようなファイルやディレクトリはありません
- インストール
パスの通ったディレクトリにインストールするので、インストール時に生成されるenv
やenv.fish
は不要。
INSTALLER_NO_MODIFY_PATH も付けて生成されないようにしておく。$ curl -LsSf https://astral.sh/uv/install.sh | sudo UV_INSTALL_DIR="/usr/local/bin/" INSTALLER_NO_MODIFY_PATH=1 sh $ ls /usr/local/bin/{uv,uvx} /usr/local/bin/uv /usr/local/bin/uvx $ uv version uv 0.6.8
uvを更新
公式手順に従うだけ。
- 何も指定せず個人用にHOMEディレクトリにインストールしたならこのコマンド
$ uv self update
- この記事と同じように全ユーザー用に
/usr/local/bin/
にインストールしたならこのコマンド$ sudo UV_INSTALL_DIR="/usr/local/bin/" INSTALLER_NO_MODIFY_PATH=1 uv self update
uvの使い方は別途作成予定