Ubuntu 26.04 に pyenv で Python をインストールする方法(最新バージョン・バージョン切り替え)

Ubuntu 26.04 サーバーに pyenv で最新の Python をインストールし、複数バージョンのインストールとプロジェクトごとのバージョン変更、venv 仮想環境と pip によるパッケージのインストール、ビルドエラーと pye…

Ubuntu 26.04Python 3.15x86_64約 20 分

検証済みのドキュメントです

クラウドサーバーを作成し、このドキュメントのコマンドを最初から最後までそのまま実行して確認したドキュメントです。

OS
Ubuntu 26.04.1 LTS · x86_64
インストールしたバージョン
Python 3.15.0, Python 3.13.16 (소스 빌드), pyenv 2.8.10
テストサーバー
DigitalOcean · 2 vCPU / 2 GB RAM / 60 GB SSD (s-2vcpu-2gb, sgp1)
最終確認
2026-10-16

このドキュメントにはアフィリエイトリンクが含まれています。リンクから登録するとコードサンドが手数料を受け取ることがありますが、内容や評価には影響しません。

Ubuntu 26.04 サーバーに pyenv で最新の Python をインストールし、複数バージョンのインストールとプロジェクトごとのバージョン変更、venv 仮想環境と pip によるパッケージのインストール、ビルドエラーと pyenv コマンドが見つからないエラーの対処、きれいにアンインストールする方法までまとめます。

1. 準備するもの

  • Ubuntu 26.04 LTS のサーバーまたは PC 1 台
  • sudo 権限のある一般ユーザーアカウント
  • インターネット接続(GitHub と python.org からファイルをダウンロードします)

サーバーがない場合は、DigitalOcean で Droplet を作成してみてください。pyenv は Python をソースコードから直接ビルドするため、CPU が多いほど早く終わります。このドキュメントのすべての手順は、Droplet(2 vCPU・メモリ 2GB・60GB SSD・Ubuntu 26.04・シンガポール)でサーバーを作成し、sudo 権限のある一般ユーザーアカウントで確認しました。

2. インストール前の状態を確認

Ubuntu 26.04 には Python 3.14 が標準で入っています。システムのプログラムが使う Python なので、削除したり別のバージョンに置き換えたりしないでください。

python3 --version
Python 3.14.4

python コマンドはありません。Ubuntu は python3 という名前でのみ Python を提供しています。

python --version
Command 'python' not found, did you mean:
  command 'python3' from deb python3
  command 'python' from deb python-is-python3

パッケージをインストールする pip3 もなく、仮想環境を作る venv もそのままでは使えません。

pip3 --version
Command 'pip3' not found, but can be installed with:
sudo apt install python3-pip
python3 -m venv myenv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt install python3.14-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: /home/devuser/myenv/bin/python3

失敗した際に作りかけの myenv フォルダーが残るので削除します。出力はありません。

rm -rf myenv

Python 3.14 は2030年10月までサポートされるバージョンで、このドキュメントを確認した日の最新の Python は 3.15 でした。このドキュメントではシステムの Python はそのままにして、pyenv で最新の Python をユーザーフォルダー(~/.pyenv)に別途インストールします。pyenv は python.org のソースコードをダウンロードしてビルドし、複数のバージョンをインストールしておき、コマンド 1 行で切り替えて使えるようにします。

3. ビルドに必要なパッケージのインストール

pyenv は Python を自分でビルドするため、コンパイラーとライブラリが必要です。まずパッケージリストを更新します。出力の前半(Hit、Get の行)は省略しています。

sudo apt update
Fetched 4439 kB in 3s (1287 kB/s)
54 packages can be upgraded. Run 'apt list --upgradable' to see them.

pyenv の Wiki で案内されているビルド用パッケージをインストールします。コンパイラーがないとビルドが失敗する様子は手順 9 で確認できます。出力は最後の要約だけを残しています。

sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl git libncurses-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libzstd-dev
REMOVING:
  coreutils-from-gnu

Summary:
  Upgrading: 13, Installing: 106, Removing: 1, Not Upgrading: 41
  Download size: 99.6 MB
  Space needed: 327 MB / 58.9 GB available

Ubuntu 26.04 では、ビルド用パッケージとともに coreutils-from-gnu パッケージ 1 つが削除対象として表示されます。基本コマンド群(coreutils)の構成が変わるもので、このドキュメントの以降の手順はこの状態ですべて正常に進みました。

4. pyenv のインストール

pyenv のインストールスクリプトをダウンロードして実行します。curl -fsSL は進行状況を表示せずにダウンロードし、失敗した場合はエラーを表示するという意味です。ダウンロードしたスクリプトは | bash に渡してすぐに実行します。GitHub から pyenv とプラグインをダウンロードする行は省略しています。

curl -fsSL https://pyenv.run | bash
Cloning into '/home/devuser/.pyenv'...
Cloning into '/home/devuser/.pyenv/plugins/pyenv-doctor'...
Cloning into '/home/devuser/.pyenv/plugins/pyenv-update'...
Cloning into '/home/devuser/.pyenv/plugins/pyenv-virtualenv'...
…

WARNING: seems you still have not added 'pyenv' to the load path.

# Load pyenv automatically by appending
# the following to
# ~/.bash_profile if it exists, otherwise ~/.profile (for login shells)
# and ~/.bashrc (for interactive shells) :

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"

# Restart your shell for the changes to take effect.

最後の警告は、pyenv を読み込む設定がまだ追加されていないという案内です。案内された 3 行を ~/.bashrc の末尾に追加します。Ubuntu はログイン時にも ~/.bashrc を読み込むため、このファイルに追加するだけで十分です。3 つのコマンドはいずれも出力がありません。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc

5. pyenv のインストール確認

設定を追加する前のターミナルでは、pyenv が見つからないというメッセージが表示されます。

pyenv --version
Command 'pyenv' not found, but can be installed with:
sudo apt install pyenv-runtime

案内されたパッケージはインストールしないでください。ターミナルを閉じて新しく開くか(SSH の場合は接続を切ってから再接続)、次のコマンドで ~/.bashrc を読み込み直します。出力はありません。

source ~/.bashrc
pyenv --version
pyenv 2.8.10

6. Python 最新バージョンのインストール

3.15 のように先頭の 2 桁だけを指定すると、その系列の最新バージョンをインストールします。ソースコードをダウンロードしてビルドするため数分かかり、Installing Python-3.15.0... の行が表示された後は、終わるまで画面に何も表示されません。

pyenv install 3.15
Downloading Python-3.15.0.tar.xz...
-> https://www.python.org/ftp/python/3.15.0/Python-3.15.0.tar.xz
  % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                 Dload  Upload  Total   Spent   Left   Speed
100 34.03M 100 34.03M   0      0 245.2M      0                              0
Installing Python-3.15.0...
Installed Python-3.15.0 to /home/devuser/.pyenv/versions/3.15.0

インストールされたバージョンを確認します。system は Ubuntu に入っているシステムの Python で、* が付いているものが現在使っているバージョンです。

pyenv versions
* system (set by /home/devuser/.pyenv/version)
  3.15.0

インストールしただけでは、まだシステムの Python が使われます。pyenv global でデフォルトのバージョンを 3.15 に設定します。出力はありません。

pyenv global 3.15

これで python と python3 のどちらでも Python 3.15 が実行されます。pip も一緒にインストールされています。

python --version
Python 3.15.0
python3 --version
Python 3.15.0
pip --version
pip 26.2.1 from /home/devuser/.pyenv/versions/3.15.0/lib/python3.15/site-packages/pip (python 3.15)

実行される python は、pyenv が作った shims フォルダーのファイルです。pyenv はこのファイルを経由して、現在設定されているバージョンの Python を実行します。

which python
/home/devuser/.pyenv/shims/python

7. 別バージョンのインストールとプロジェクトごとのバージョン変更

インストールできるバージョンは pyenv install --list で確認します。一覧が長いため、3.13 系列だけを選んで最後の 3 行を表示しています。

pyenv install --list | grep -E '^ *3\.13\.[0-9]+$' | tail -n 3
  3.13.14
  3.13.15
  3.13.16

Python 3.13 を追加でインストールします。これもビルドするため数分かかります。

pyenv install 3.13
Downloading Python-3.13.16.tar.xz...
-> https://www.python.org/ftp/python/3.13.16/Python-3.13.16.tar.xz
  % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                 Dload  Upload  Total   Spent   Left   Speed
100 22.14M 100 22.14M   0      0 160.2M      0                              0
Installing Python-3.13.16...
Installed Python-3.13.16 to /home/devuser/.pyenv/versions/3.13.16
pyenv versions
  system
  3.13.16
* 3.15.0 (set by /home/devuser/.pyenv/version)

特定のプロジェクトフォルダーでだけ 3.13 を使うには、そのフォルダーで pyenv local を実行します。フォルダーに .python-version ファイルが作成され、このフォルダーとサブフォルダーではこのファイルに書かれたバージョンが使われます。

mkdir old-project && cd old-project
pyenv local 3.13
cat .python-version
3.13
python --version
Python 3.13.16

フォルダーから出ると、再びデフォルトのバージョンである 3.15 が使われます。

cd ~
python --version
Python 3.15.0

8. venv 仮想環境を作ってパッケージをインストール

パッケージはプロジェクトごとに仮想環境を作り、その中にインストールします。そうすることで、プロジェクト間でパッケージのバージョンが混ざりません。新しいターミナルを開き、hello-python フォルダーに仮想環境(.venv)を作ってから有効化(activate)します。3 つのコマンドはいずれも出力がありません。

mkdir hello-python && cd hello-python
python -m venv .venv
source .venv/bin/activate

仮想環境を有効にすると、プロンプトの前に (.venv) が付きます。仮想環境の Python のバージョンを確認し、HTTP リクエストを送る requests パッケージをインストールします。インストール中のダウンロード行は省略しています。

python --version
Python 3.15.0
pip install requests
Collecting requests
  …
Installing collected packages: urllib3, idna, charset_normalizer, certifi, requests
Successfully installed certifi-2026.7.22 charset_normalizer-3.5.2 idna-3.20 requests-2.34.2 urllib3-2.8.0

requests を使う app.py を作って実行します。1 行目は引用符の中の内容でファイルを作るコマンドなので、出力はありません。

echo "import sys, requests; print('Hello Python', sys.version.split()[0], 'requests', requests.__version__)" > app.py
python app.py
Hello Python 3.15.0 requests 2.34.2

仮想環境は deactivate で無効にします。無効にした状態でもう一度実行すると、requests が見つからないというエラーになります。requests は仮想環境の中にだけインストールされているためです。

deactivate
python app.py
Traceback (most recent call last):
  File "/home/devuser/hello-python/app.py", line 1, in <module>
    import sys, requests; print('Hello Python', sys.version.split()[0], 'requests', requests.__version__)
    ^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'requests'

9. トラブルシューティング

configure: error: no acceptable C compiler found in $PATH

手順 3 のビルド用パッケージをインストールせずに pyenv install を実行すると、コンパイラー(gcc)がないためビルドが失敗します。手順 3 の sudo apt install を実行してから、もう一度 pyenv install を実行してください。失敗したビルドは自動的に片付けられるため、別途削除するものはありません。

pyenv install 3.15
Installing Python-3.15.0...

BUILD FAILED (Ubuntu 26.04 using python-build 2.8.10)

Inspect or clean up the working tree at /tmp/python-build.20261016104806.3268
Results logged to /tmp/python-build.20261016104806.3268.log
…
configure: error: in '/tmp/python-build.20261016104806.3268/Python-3.15.0':
configure: error: no acceptable C compiler found in $PATH
…
Command 'pyenv' not found, but can be installed with:

手順 4 で ~/.bashrc に 3 行を追加する前に開いたターミナルだという意味です。ターミナルを閉じて新しく開くか、source ~/.bashrc を実行してください。一緒に案内されるパッケージはインストールしません。新しいターミナルでも同じ場合は、tail -n 3 ~/.bashrc で 3 行があるか確認してください。

sudo: 'python': command not found

sudo はコマンドを探すパス(PATH)をシステムの標準パスに切り替えて実行するため、ユーザーフォルダーにある pyenv の Python を見つけられません。pyenv でインストールした Python は sudo を付けずに実行してください。

sudo python --version
sudo: 'python': command not found
ModuleNotFoundError: No module named 'requests'

仮想環境の中にインストールしたパッケージを、仮想環境の外で実行したという意味です。プロジェクトフォルダーで source .venv/bin/activate を実行して仮想環境を有効にしてから実行してください。

pyenv uninstall 3.13 を実行してもバージョンが削除されない

pyenv install と異なり、pyenv uninstall は先頭の 2 桁だけを指定すると何のメッセージもなく終了し、バージョンも削除されません。pyenv versions に表示される完全なバージョン番号(3.13.16)を指定してください。

pyenv uninstall -f 3.13
pyenv versions
  system
  3.13.16
* 3.15.0 (set by /home/devuser/.pyenv/version)
The virtual environment was not created successfully because ensurepip is not available.

システムの Python(3.14)で python3 -m venv を実行すると表示されるメッセージです。Ubuntu のシステムの Python には、仮想環境を作るのに必要なパッケージが含まれていません。pyenv でインストールした Python には venv が含まれているため、pyenv global でバージョンを設定してから python -m venv で作成してください。

error: externally-managed-environment

Ubuntu 26.04 で sudo apt install python3-pip で pip をインストールし、pip3 install を実行すると表示されるエラーです。システムの Python に直接パッケージをインストールすると、apt でインストールしたシステムのパッケージと競合する可能性があるため、Ubuntu が禁止しています。システムの Python にはインストールせず、手順 8 のように仮想環境を作ってその中にインストールしてください。

pip3 install requests
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    …

10. アンインストール

Python のバージョンを 1 つだけ削除

pyenv でインストールしたバージョンを 1 つだけ削除するには、pyenv uninstall に完全なバージョン番号を指定します。-f は削除するか確認せずにすぐ削除するという意味です。

pyenv uninstall -f 3.13.16
pyenv: 3.13.16 uninstalled
pyenv versions
  system
* 3.15.0 (set by /home/devuser/.pyenv/version)

pyenv と Python をすべて削除

pyenv と pyenv でインストールした Python は、すべて ~/.pyenv フォルダーの中にあります。まず手順 4 で ~/.bashrc に追加した 3 行を確認します。

tail -n 3 ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"

~/.pyenv フォルダーと練習用のフォルダーを削除し、~/.bashrc から 3 行を削除します。sed -i はファイルを直接書き換えるという意味で、/PYENV_ROOT/d と /pyenv init/d はその文字列を含む行を削除するという意味です。2 つのコマンドはいずれも出力がありません。

rm -rf ~/.pyenv ~/hello-python ~/old-project
sed -i '/PYENV_ROOT/d; /pyenv init/d' ~/.bashrc

ターミナルを閉じて新しく開き、確認します。pyenv が見つからず、python3 がシステムの Python に戻っていれば削除は完了です。手順 3 でインストールしたビルド用パッケージは他のプログラムのビルドにも使うため、そのまま残しています。

pyenv --version
Command 'pyenv' not found, but can be installed with:
sudo apt install pyenv-runtime
python3 --version
Python 3.14.4

実際に試してみる

サーバーがなければ、以下のサービスで数分あれば Ubuntu サーバーを作れます。 このドキュメントは DigitalOcean で検証しました。