Ubuntuでuv(高速Pythonパッケージ管理)を使う方法

開発環境

この記事のポイント

  • Ubuntu 24.04 LTS では pip installPEP 668エラーで失敗するが、uv はこの問題をゼロ設定で回避できる
  • curl -LsSf https://astral.sh/uv/install.sh | sh の1行で uv 0.11.21 がインストールできる(2026-06-13 実測)
  • キャッシュ2回目のインストールは 0.061秒と、pip の約6倍高速(ubuntu:24.04 コンテナで実測)
  • uv inituv add で pyproject.toml ベースのプロジェクト管理ができる
  • Python自体のバージョン管理(3.9〜3.15ベータ)も uv 1本でできる

「Ubuntu に Python をインストールしたのに pip install が動かない」「仮想環境の作り方がよくわからない」――そういう悩みを抱えたことはありませんか?

Ubuntu 24.04 LTS からは、セキュリティ上の理由で pip install を直接使うとエラーが出る仕様になりました。そこで登場するのが uv(ユーブイ)です。Rust製の超高速Pythonパッケージマネージャーで、pip・venv・pyenv の機能をひとつに統合したツールです。

本記事では実際に ubuntu:24.04 コンテナで uv を動かした実測データをもとに、インストールから基本的な使い方まで丁寧に解説します。

動作確認環境

Docker公式イメージ ubuntu:24.04(Ubuntu 24.04.2 LTS)で 2026-06-13 に実測。VPSやローカルの Ubuntu 24.04 でも同様の手順で動作します。

目次

  1. uv とは何か:pip・venv・pyenv を一本化したツール
  2. Ubuntu 24.04 でこそ uv が有効な理由(PEP 668問題)
  3. uv のインストール手順(Ubuntu 24.04 / 22.04)
  4. uv の基本的な使い方
  5. uv init / uv add でプロジェクト管理
  6. uv で Python バージョンを管理する
  7. よくあるエラーと解決策
  8. まとめ

uv とは何か:pip・venv・pyenv を一本化したツール

uv は Astral 社が開発した、Rust 製の高速 Python パッケージマネージャーです。2024年にリリースされ、短期間で Python 開発者の間に急速に広まりました。

これまで Python 開発では、複数のツールを組み合わせる必要がありました:

  • pip:パッケージのインストール
  • venv / virtualenv:仮想環境の作成
  • pyenv:Python バージョンの管理
  • pip-tools:依存関係のロック

uv はこれらをすべて一本化し、さらに圧倒的な速度で動作します。pip と比べてキャッシュ利用時は約6倍高速という実測値も出ています(後述)。

uv の主要コマンド一覧(実測)
uv の主要コマンド一覧(実測)

Ubuntu 24.04 でこそ uv が有効な理由(PEP 668問題)

Ubuntu 24.04 LTS からの変更点として、pip install を直接実行すると次のようなエラーが出ます:




ubuntu@linuxlab: ~
$ pip install requests
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to install.

hint: See PEP 668 for the detailed specification.

これは PEP 668 という仕様に基づくもので、システムの Python 環境を壊さないための保護機能です。Ubuntu 24.04 では Python 3.12.3 が同梱されており(実測)、このシステム Python への直接インストールがブロックされます。

従来の回避方法は python3 -m venv で仮想環境を作ることでしたが、uv を使えば仮想環境の作成も含めてワンコマンドでこの問題を回避できます。

pip エラーとuv解決策の比較(実測)
pip エラーとuv解決策の比較(実測)

uv のインストール手順(Ubuntu 24.04 / 22.04)

手順1:curl でインストールスクリプトを実行する

uv は公式の1行コマンドでインストールできます。まず curl が入っていなければインストールしておきます。




ubuntu@linuxlab: ~
$ sudo apt-get update && sudo apt-get install -y curl
Setting up curl (8.5.0-2ubuntu10.9) …

$ curl -LsSf https://astral.sh/uv/install.sh | sh
downloading uv 0.11.21 aarch64-unknown-linux-gnu
installing to /root/.local/bin
uv
uvx
everything’s installed!

To add $HOME/.local/bin to your PATH, run:
source $HOME/.local/bin/env (sh, bash, zsh)

インストールが完了したら everything's installed! と表示されます。この時点では uv コマンドはまだ PATH に入っていません。

手順2:PATH を通す

インストール直後は source コマンドで PATH を通す必要があります。




ubuntu@linuxlab: ~
$ source $HOME/.local/bin/env
$ uv –version
uv 0.11.21 (aarch64-unknown-linux-gnu)

次回以降のシェル起動時も有効にしたい場合は、~/.bashrc に追記します:




ubuntu@linuxlab: ~
$ echo ‘source $HOME/.local/bin/env’ >> ~/.bashrc
$ source ~/.bashrc
$ uv –version
uv 0.11.21 (aarch64-unknown-linux-gnu)
著者アイコン
著者アイコン

Ubuntu 22.04 でも同じコマンドで uv 0.11.21 がインストールできることを実際に確認しました。バージョンの差は出ませんでした。

uvインストールの実行ログ(Ubuntu 24.04 実測)
uvインストールの実行ログ(Ubuntu 24.04 実測)

uv の基本的な使い方

①仮想環境を作成する(uv venv)

uv で仮想環境を作るには uv venv コマンドを使います。




ubuntu@linuxlab: ~
$ uv venv myenv
Using CPython 3.12.3 interpreter at: /usr/bin/python3
Creating virtual environment at: myenv
Activate with: source myenv/bin/activate

$ source myenv/bin/activate
(myenv) $

従来の python3 -m venv myenv と同じ感覚で使えます。仮想環境の作成がほぼ瞬時(ミリ秒単位)で完了するのが特徴です。

②パッケージをインストールする(uv pip install)

仮想環境を有効化したあとは uv pip install でパッケージをインストールできます。構文は pip と完全に互換性があります。




ubuntu@linuxlab: ~/myenv
$ uv pip install requests
Resolved 5 packages in 48ms
Installed 5 packages in 61ms
+ certifi==2026.5.20
+ charset-normalizer==3.4.7
+ idna==3.18
+ requests==2.34.2
+ urllib3==2.7.0

正直、この速さは最初に見たとき驚きました。キャッシュ利用時は 0.061秒でインストールが完了します(pip の初回インストールと比較して約6倍高速、ubuntu:24.04 コンテナで実測)。

pip vs uv インストール速度比較(実測)
pip vs uv インストール速度比較(実測)

③仮想環境なしで直接インストール(uv pip install –system も可)

仮想環境を使わずシステムにインストールしたい場合は --system フラグを付けます。ただし、基本的には仮想環境を使う運用を推奨します。




ubuntu@linuxlab: ~
$ uv pip install –system requests
Installed 5 packages in 29ms

uv init / uv add でプロジェクト管理

uv の真価はプロジェクト管理機能にあります。uv init でプロジェクトを初期化し、uv add で依存関係を管理できます。

手順1:uv init でプロジェクトを初期化する




ubuntu@linuxlab: ~
$ mkdir myapp && cd myapp
$ uv init
Downloading cpython-3.14.6-linux-aarch64-gnu
Initialized project `myapp`

$ cat pyproject.toml
[project]
name = “myapp”
version = “0.1.0”
requires-python = “>=3.14”
dependencies = []

ここで注目のポイントがあります。uv init を実行すると、uv が最新の Python(今回は 3.14.6)を自動でダウンロードしてくれます。pyenv を別途インストールする必要はありません。

手順2:uv add でパッケージを追加する




ubuntu@linuxlab: ~/myapp
$ uv add requests
Using CPython 3.14.6
Creating virtual environment at: .venv
Resolved 6 packages in 299ms
Installed 5 packages in 18ms
+ certifi==2026.5.20
+ charset-normalizer==3.4.7
+ idna==3.18
+ requests==2.34.2
+ urllib3==2.7.0

$ cat pyproject.toml
[project]
name = “myapp”
version = “0.1.0”
requires-python = “>=3.14”
dependencies = [
“requests>=2.34.2”,
]

uv addpyproject.toml に依存関係を自動で書き込み、uv.lock ファイルも生成します。これで再現性のある環境をチームで共有できます。

uv init と uv add の実行結果(実測)
uv init と uv add の実行結果(実測)

uv.lock でチームメンバーと環境を同期する

uv.lock ファイルは、すべての依存関係のバージョンとハッシュを記録したファイルです。Git でコミットしておけば、他のメンバーが uv sync を実行するだけで同一環境を再現できます。




ubuntu@linuxlab: ~/myapp
$ uv sync
Resolved 6 packages in 12ms
All dependencies already satisfied

uv で Python バージョンを管理する

uv は Python バージョン自体のインストールと切り替えもサポートしています。従来 pyenv が担っていた役割です。

利用可能な Python バージョンを確認する




ubuntu@linuxlab: ~
$ uv python list
cpython-3.15.0b2-linux-aarch64-gnu <download available>
cpython-3.14.6-linux-aarch64-gnu <download available>
cpython-3.13.14-linux-aarch64-gnu <download available>
cpython-3.12.13-linux-aarch64-gnu <download available>
cpython-3.11.15-linux-aarch64-gnu <download available>
cpython-3.10.20-linux-aarch64-gnu <download available>
cpython-3.9.25-linux-aarch64-gnu <download available>

Python 3.9 から最新の 3.15 ベータまで、インストール可能なバージョンが一覧表示されます(2026-06-13 実測)。

特定の Python バージョンをインストールして使う




ubuntu@linuxlab: ~
$ uv python install 3.11
Installed Python 3.11.15 in 8.12s
+ cpython-3.11.15-linux-aarch64-gnu

$ uv venv –python 3.11 myenv311
Using CPython 3.11.15
Creating virtual environment at: myenv311

$ myenv311/bin/python –version
Python 3.11.15

ここだけは順番を間違えると動きません。uv python install でダウンロードしてから、--python オプションを付けて uv venv を実行します。

よくあるエラーと解決策

エラー①:uv: command not found

インストール後に PATH が通っていない場合に発生します。




ubuntu@linuxlab: ~
$ uv –version
bash: uv: command not found

$ source $HOME/.local/bin/env
$ uv –version
uv 0.11.21 (aarch64-unknown-linux-gnu)

解決策は source $HOME/.local/bin/env を実行するか、~/.bashrc に追記することです。

エラー②:No virtual environment found

仮想環境の外で uv pip install を実行した際に出ることがあります。

解決策

uv pip install --system <pkg>--system フラグを付けるか、先に uv venv で仮想環境を作ってから実行してください。

エラー③:SSL: CERTIFICATE_VERIFY_FAILED

プロキシ環境や証明書の設定が不完全な場合に発生します。




ubuntu@linuxlab: ~
$ sudo apt-get install -y ca-certificates
Setting up ca-certificates (20240203) …

ca-certificates パッケージをインストールして証明書を更新すると解消されることが多いです。

まとめ

Ubuntu 24.04 LTS で Python 開発を始めるなら、uv の導入を強くおすすめします。

  • Ubuntu 24.04 の pip 直接インストールブロック(PEP 668)を回避できる
  • 仮想環境の作成・パッケージインストール・Python バージョン管理をすべて1ツールで行える
  • キャッシュ利用時は 0.061秒という圧倒的な速度(ubuntu:24.04 コンテナで実測)
  • uv init / uv add でモダンな pyproject.toml ベースのプロジェクト管理ができる
  • Ubuntu 22.04 でも同一コマンドでインストール・動作確認済み(2026-06-13)

Python の環境構築は「詰まりやすいポイントが多い」という印象があるかもしれませんが、uv を使えばかなりシンプルになります。まずは curl -LsSf https://astral.sh/uv/install.sh | sh の1行から始めてみてください。

VPS で本格的に Python 開発をするなら

自分のVPSサーバーで uv を使った Python アプリを動かしたい方は、まず VPS の選び方から始めましょう。月額 $5 〜の Vultr は日本語ドキュメントも充実しており、Ubuntu 24.04 を選択してすぐに動かせます。

コメント

タイトルとURLをコピーしました