Ubuntuで「E: Package has no installation candidate」エラーを修正する (python3-pip)

beginner🐧 Linux2026-04-29| Ubuntu 20.04, 22.04, 24.04 LTS, Debian 11/12, WSL2, Docker

Error Message

E: Package 'python3-pip' has no installation candidate
#apt#ubuntu#python#linux-admin

TL;DR: 30秒で解決このエラーは通常、ローカルのパッケージデータベースが同期されていないか、必要なリポジトリが有効になっていない場合に発生します。ほとんどのユーザーは、以下の3つのコマンドを順番に実行することで解決できます。

sudo apt update
sudo add-apt-repository universe
sudo apt update
sudo apt install python3-pip

実際の原因は?Ubuntuで no installation candidate エラーが表示される場合、それは apt がそのパッケージの存在は知っているものの、有効なダウンロードリンクを見つけられないことを意味しています。これは、図書目録には本のタイトルが載っているのに、館内の棚がすべて空であるような状態を想像してください。

この現象は、セットアップしたばかりの WSL2、最小構成の Docker コンテナ、あるいは数ヶ月間放置されていたクラウド VPS インスタンスで特によく見られます。主な原因は以下の通りです。

  • キャッシュの不整合: システムが、ミラーサイト上にもはや存在しない古いファイルバージョンを探している。- 非表示のリポジトリ: パッケージが「Universe」に存在し、多くの最小インストール環境では容量節約のために無効化されている。- バージョンの不一致: python3-pip ではなく、古い Python 2 バージョンの python-pip を探している可能性がある。- サポート終了 (EOL): Ubuntu 21.10 などの古いリリースを使用しており、公式ミラーがすでにホストを終了している。## ステップバイステップの解決策### 1. パッケージインデックスの更新たとえ1時間前にアップデートを実行したばかりでも、もう一度実行してください。ミラーサイトは頻繁に変更されます。このコマンドにより、Ubuntuのサーバーから最新のソフトウェアリストを強制的に取得します。
sudo apt update

ターミナルの表示に注意してください。「Err」や「W:」(警告)で始まる行がある場合は、パッケージの欠落ではなく、ネットワークの問題やセキュリティキーの期限切れが疑われます。まずはそちらを修正しましょう。

2. Universeリポジトリの有効化python3-piphtopffmpeg などの標準的なツールは「Main」リポジトリには含まれていません。これらは、コミュニティが維持する Universe リポジトリにあります。最小限の環境(特に Docker)では、デフォルトでオフになっていることがよくあります。

以下のコマンドで有効化します。

sudo add-apt-repository universe
sudo apt update

もしシステムが add-apt-repository: command not found と返してきた場合は、小さなヘルパーパッケージ(約10MB)が不足しています。先にこちらをインストールしてください。

sudo apt update && sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update

3. パッケージ名の確認タイプミスは生産性を低下させる隠れた原因です。Linux は大文字と小文字を区別し、Python 2 と 3 では命名規則が異なります。検索ツールを使用して、現在のリポジトリで何が利用可能かを確認してください。

apt-cache search pip | grep python3

もし python3-pip が結果に表示されない場合は、リポジトリの設定が確実におかしくなっています。

4. sources.list の修復まだ解決しない場合は、sources.list が空であるか、間違った URL を指している可能性があります。テキストエディタで開いてください。

sudo nano /etc/apt/sources.list

標準的な Ubuntu 22.04 (Jammy Jellyfish) システムでは、以下のような行が表示されるはずです。

deb http://archive.ubuntu.com/ubuntu/ jammy main universe restricted multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-updates main universe restricted multiverse
deb http://security.ubuntu.com/ubuntu/ jammy-security main universe restricted multiverse

もしファイルの内容が大きく異なる場合は、コードネーム(例: 「jammy」や「noble」)をご使用のバージョンに置き換えてください。コードネームは lsb_release -c を実行することで確認できます。

修正の確認方法150MB以上のフルインストールを実行する前に、apt が有効な候補を認識しているか確認しましょう。

apt-cache policy python3-pip

成功した場合は以下のように表示されます:

python3-pip:
  Installed: (none)
  Candidate: 22.0.2+dfsg-1ubuntu0.5
  Version table:
     22.0.2+dfsg-1ubuntu0.5 500
        500 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages

「Candidate」の行に「(none)」ではなくバージョン番号が表示されていれば準備完了です。インストールを進めましょう。

sudo apt install python3-pip

リポジトリ簡易チートシート- Main: 自由でオープンソース、Canonical によって公式にサポートされている。- Universe: 自由でオープンソースだが、コミュニティによって維持されている。- Restricted: プロプライエタリなドライバ(Nvidia など)。- Multiverse: 著作権や法的制約があるソフトウェア。## さらに詳しく- 公式 Ubuntu リポジトリ管理ガイド- APT マンページ

Related Error Notes