検証済みのドキュメントです
クラウドサーバーを作成し、このドキュメントのコマンドを最初から最後までそのまま実行して確認したドキュメントです。
- OS
- Ubuntu 26.04.1 LTS · x86_64
- インストールしたバージョン
- Python 3.15.0, Python 3.13.16, uv 0.13.1
- テストサーバー
- DigitalOcean · 2 vCPU / 2 GB RAM / 60 GB SSD (s-2vcpu-2gb, sgp1)
- 最終確認
- 2026-10-16
このドキュメントにはアフィリエイトリンクが含まれています。リンクから登録するとコードサンドが手数料を受け取ることがありますが、内容や評価には影響しません。
Ubuntu 26.04 サーバーに uv で最新の Python をインストールし、複数バージョンのインストールとプロジェクトごとのバージョン変更、仮想環境とパッケージのインストール、uv コマンドが見つからないエラーと ModuleNotFoundError の対処、きれいにアンインストールする方法までまとめます。
1. 準備するもの
- Ubuntu 26.04 LTS のサーバーまたは PC 1 台
sudo権限のある一般ユーザーアカウント- インターネット接続(GitHub と PyPI からファイルをダウンロードします)
サーバーがない場合は、DigitalOcean で Droplet を作成してみてください。このドキュメントのすべての手順は、Droplet(2 vCPU・メモリ 2GB・60GB SSD・Ubuntu 26.04・シンガポール)でサーバーを作成し、sudo 権限のある一般ユーザーアカウントで確認しました。
2. インストール前の状態を確認
Ubuntu 26.04 には Python 3.14 が標準で入っています。システムのプログラムが使う Python なので、削除したり別のバージョンに置き換えたりしないでください。
python3 --versionPython 3.14.4python コマンドはありません。Ubuntu は python3 という名前でのみ Python を提供しています。
python --versionCommand 'python' not found, did you mean:
command 'python3' from deb python3
command 'python' from deb python-is-python3パッケージをインストールする pip3 もなく、仮想環境を作る venv もすぐには使えません。
pip3 --versionCommand 'pip3' not found, but can be installed with:
sudo apt install python3-pippython3 -m venv myenvThe 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 myenvPython 3.14 は2030年10月までサポートされるバージョンで、このドキュメントを確認した日の最新 Python は 3.15 でした。このドキュメントではシステムの Python はそのままにして、uv で最新の Python をユーザーフォルダーに別途インストールします。uv は Python のインストール、バージョン変更、仮想環境、パッケージのインストールを 1 つのプログラムで行うツールで、ビルド済みの Python をダウンロードするためインストールは 1 分以内に終わり、sudo も不要です。
3. uv のインストール
uv のインストールスクリプトをダウンロードして実行します。curl -LsSf は進行状況を表示せずにダウンロードし、失敗した場合はエラーを表示するという意味です。ダウンロードしたスクリプトは | sh に渡してすぐに実行します。このドキュメントでは確認した日の最新バージョンである uv 0.13.1 をインストールしました。
curl -LsSf https://astral.sh/uv/install.sh | shdownloading uv 0.13.1 x86_64-unknown-linux-gnu
installing to /home/devuser/.local/bin
uv
uvx
everything's installed!
To add $HOME/.local/bin to your PATH, either restart your shell or run:
source $HOME/.local/bin/env (sh, bash, zsh)
source $HOME/.local/bin/env.fish (fish)uv は ~/.local/bin フォルダーにインストールされ、このフォルダーをコマンドのパス(PATH)に追加する行が ~/.bashrc と ~/.profile の末尾に追加されます。
4. uv のインストール確認
インストールしたターミナルですぐに uv を実行すると、コマンドが見つからないというメッセージが表示されます。このターミナルは PATH が追加される前に開かれたためです。
uv --versionuv: command not foundインストールメッセージの案内どおり下のコマンドを実行するか、ターミナルを閉じて開き直します(SSH の場合は接続を切ってから再接続します)。出力はありません。
source $HOME/.local/bin/envuv --versionuv 0.13.1 (x86_64-unknown-linux-gnu)5. 最新の Python をインストール
バージョンを指定しないと、最新の Python がインストールされます。
uv python installInstalled Python 3.15.0 in 2.79s
+ cpython-3.15.0-linux-x86_64-gnu (python3.15)インストールされている Python の一覧を確認します。uv がインストールした Python とシステムの Python(/usr/bin)が一緒に表示されます。
uv python list --only-installedcpython-3.15.0-linux-x86_64-gnu .local/bin/python3.15 -> .local/share/uv/python/cpython-3.15-linux-x86_64-gnu/bin/python3.15
cpython-3.15.0-linux-x86_64-gnu .local/share/uv/python/cpython-3.15-linux-x86_64-gnu/bin/python3.15
cpython-3.14.4-linux-x86_64-gnu /usr/bin/python3.14
cpython-3.14.4-linux-x86_64-gnu /usr/bin/python3 -> python3.14uv はインストールした Python を python3.15 のようにバージョン付きの名前でのみ登録します。そのため python3.15 は実行できますが、python は見つからないままです。
python3.15 --versionPython 3.15.0python --versionCommand 'python' not found, did you mean:
command 'python3' from deb python3
command 'python' from deb python-is-python3python と python3 でも Python 3.15 を実行するには、--default を付けて再度インストールします。Python はすでにダウンロード済みなので、名前だけが追加されます。このオプションはまだ試験的な機能のため警告が表示されますが、インストールには問題ありません。
uv python install 3.15 --defaultwarning: The `--default` option is experimental and may change without warning. Pass `--preview-features python-install-default` to disable this warning
Installed Python 3.15.0 in 86ms
+ cpython-3.15.0-linux-x86_64-gnu (python, python3)python --versionPython 3.15.0python3 --versionPython 3.15.0which python/home/devuser/.local/bin/python6. 別のバージョンをインストール
別のバージョンが必要な場合は、バージョン番号を指定してインストールします。3.13 のように指定すると、3.13 系の最新バージョンがインストールされます。
uv python install 3.13Installed Python 3.13.16 in 2.25s
+ cpython-3.13.16-linux-x86_64-gnu (python3.13)uv python list --only-installedcpython-3.15.0-linux-x86_64-gnu .local/bin/python3.15 -> .local/share/uv/python/cpython-3.15-linux-x86_64-gnu/bin/python3.15
cpython-3.15.0-linux-x86_64-gnu .local/bin/python3 -> .local/share/uv/python/cpython-3.15-linux-x86_64-gnu/bin/python3.15
cpython-3.15.0-linux-x86_64-gnu .local/bin/python -> .local/share/uv/python/cpython-3.15-linux-x86_64-gnu/bin/python3.15
cpython-3.15.0-linux-x86_64-gnu .local/share/uv/python/cpython-3.15-linux-x86_64-gnu/bin/python3.15
cpython-3.14.4-linux-x86_64-gnu /usr/bin/python3.14
cpython-3.14.4-linux-x86_64-gnu /usr/bin/python3 -> python3.14
cpython-3.13.16-linux-x86_64-gnu .local/bin/python3.13 -> .local/share/uv/python/cpython-3.13-linux-x86_64-gnu/bin/python3.13
cpython-3.13.16-linux-x86_64-gnu .local/share/uv/python/cpython-3.13-linux-x86_64-gnu/bin/python3.13Python 3.13 は python3.13 で実行でき、python は 3.15 のままです。プロジェクトごとに別のバージョンを使う方法はステップ 8 で説明します。
7. 最初のプロジェクトを作成してパッケージをインストール
uv はプロジェクトフォルダーごとに仮想環境(.venv)を作成し、パッケージを個別に管理します。新しいターミナルを開いて hello-python プロジェクトを作成します。--no-package は配布用のパッケージ構成を作らず、main.py 1 つで始めるという意味です。
uv init --no-package hello-pythonInitialized project `hello-python` at `/home/devuser/hello-python`cd hello-pythonls -a. .. .git .gitignore .python-version README.md main.py pyproject.toml.python-version はこのプロジェクトで使う Python のバージョンが書かれたファイルです。インストールされている Python のうち最新の 3.15 が書かれています。main.py にはあいさつを出力するサンプルが入っています。
cat .python-version3.15cat main.pydef main():
print("Hello from hello-python!")
if __name__ == "__main__":
main()プロジェクトのファイルは uv run で実行します。初回は仮想環境(.venv)を作成してから実行します。
uv run main.pyUsing CPython 3.15.0
Creating virtual environment at: .venv
Hello from hello-python!パッケージは uv add でインストールします。HTTP リクエストを送る requests パッケージをインストールしてみます。インストールしたパッケージはプロジェクトの仮想環境にだけ入り、pyproject.toml に記録されます。
uv add requestsResolved 6 packages in 189ms
Prepared 5 packages in 35ms
Installed 5 packages in 9ms
+ certifi==2026.7.22
+ charset-normalizer==3.5.2
+ idna==3.20
+ requests==2.34.2
+ urllib3==2.8.0main.py を requests を使うコードに書き換えて実行します。1 行目は引用符の中の内容でファイルを作るコマンドなので、出力はありません。
echo "import sys, requests; print('Hello Python', sys.version.split()[0], 'requests', requests.__version__)" > main.py
uv run main.pyHello Python 3.15.0 requests 2.34.2同じファイルを python で直接実行すると、requests が見つからないというエラーになります。requests はプロジェクトの仮想環境にだけインストールされているためです。
python main.pyTraceback (most recent call last):
File "/home/devuser/hello-python/main.py", line 1, in <module>
import sys, requests; print('Hello Python', sys.version.split()[0], 'requests', requests.__version__)
^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'requests'uv run を使わずに python で実行したい場合は、仮想環境を有効化(activate)します。有効化のコマンドは出力がありません。終わったら deactivate で無効にします。
source .venv/bin/activatepython --versionPython 3.15.0python main.pyHello Python 3.15.0 requests 2.34.2deactivate8. プロジェクトごとに Python のバージョンを決める
プロジェクトを作成するときに --python でバージョンを指定できます。ホームフォルダーに戻り、Python 3.13 を使う old-project を作成します。
cd ~uv init --no-package --python 3.13 old-projectInitialized project `old-project` at `/home/devuser/old-project`cd old-projectcat .python-version3.13uv run python --version で、このプロジェクトで実行される Python を確認します。
uv run python --versionUsing CPython 3.13.16
Creating virtual environment at: .venv
Python 3.13.16後でバージョンを上げるときは uv python pin を使います。.python-version ファイルが変わり、次の実行時に新しいバージョンで仮想環境が作り直されます。
uv python pin 3.15Updated `.python-version` from `3.13` -> `3.15`uv run python --versionUsing CPython 3.15.0
Removed virtual environment at: .venv
Creating virtual environment at: .venv
Python 3.15.0逆に、低いバージョンへすぐに下げることはできません。ステップ 9 の「requires-python」の項目を参照してください。
9. トラブルシューティング
uv: command not found
uv をインストールする前に開いていたターミナルで実行したという意味です。このターミナルは ~/.local/bin が PATH に追加される前に開かれました。ターミナルを閉じて開き直すか、source $HOME/.local/bin/env を実行してください。新しいターミナルでも同じ場合は、grep -n 'local/bin/env' ~/.bashrc で PATH を追加する行があるか確認してください。
ModuleNotFoundError: No module named 'requests'
uv add でインストールしたパッケージは、プロジェクトの仮想環境(.venv)にだけあります。python main.py のように直接実行すると、仮想環境の外の Python が実行されてパッケージを見つけられません。uv run main.py で実行するか、source .venv/bin/activate で仮想環境を有効にしてから実行してください。
python main.pyTraceback (most recent call last):
File "/home/devuser/hello-python/main.py", line 1, in <module>
import sys, requests; print('Hello Python', sys.version.split()[0], 'requests', requests.__version__)
^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'requests'error: The requested Python version `3.13` is incompatible with the project `requires-python` value of `>=3.15`.
プロジェクト作成時の Python のバージョンが pyproject.toml の requires-python に最小バージョンとして記録されるため、それより低いバージョンには uv python pin できません。低いバージョンがどうしても必要な場合は、先に pyproject.toml の requires-python の値を下げるか、ステップ 8 のように最初から --python でバージョンを指定してプロジェクトを作成してください。
uv python pin 3.13error: The requested Python version `3.13` is incompatible with the project `requires-python` value of `>=3.15`.The virtual environment was not created successfully because ensurepip is not available.
システムの Python(3.14)で python3 -m venv を実行すると表示されるメッセージです。Ubuntu のシステムの Python には、仮想環境の作成に必要なパッケージが含まれていません。uv で作ったプロジェクトは uv が仮想環境を作るため、このパッケージは不要です。システムの Python で仮想環境を作る必要がある場合は、メッセージの案内どおり sudo apt install python3.14-venv でインストールしてください。
error: externally-managed-environment
Ubuntu 26.04 で sudo apt install python3-pip で pip をインストールし、pip3 install を実行すると表示されるエラーです。システムの Python にパッケージを直接インストールすると apt でインストールしたシステムのパッケージと競合する可能性があるため、Ubuntu が禁止しています。システムの Python にはインストールせず、ステップ 7 のように uv プロジェクトで uv add を使ってインストールしてください。
pip3 install requestserror: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
…10. アンインストール
ホームフォルダーに戻り、uv でインストールした Python をすべて削除します。python、python3 など ~/.local/bin に登録した名前も一緒に削除されます。システムの Python は削除されません。
cd ~uv python uninstall --allSearching for Python installations
Uninstalled 2 versions in 118ms
- cpython-3.13.16-linux-x86_64-gnu (python3.13)
- cpython-3.15.0-linux-x86_64-gnu (python, python3, python3.15)uv がダウンロードしたファイルを保管するキャッシュを削除します。
uv cache cleanClearing cache at: .cache/uv
Removed 156 files (1.0MiB)uv のツールフォルダーと練習用のプロジェクトフォルダーを削除し、uv のプログラムと PATH の設定ファイル(env、env.fish)を削除します。どちらのコマンドも出力はありません。
rm -rf "$(uv tool dir)" ~/hello-python ~/old-project
rm ~/.local/bin/uv ~/.local/bin/uvx ~/.local/bin/env ~/.local/bin/env.fishステップ 3 で ~/.bashrc と ~/.profile に追加された行を確認して削除します。sed -i はファイルを直接書き換えるという意味で、/local\/bin\/env/d は local/bin/env を含む行を削除するという意味です。
grep -n 'local/bin/env' ~/.bashrc ~/.profile/home/devuser/.bashrc:119:. "$HOME/.local/bin/env"
/home/devuser/.profile:29:. "$HOME/.local/bin/env"sed -i '/local\/bin\/env/d' ~/.bashrc ~/.profilels -a ~/.local/bin. ..ターミナルを閉じて開き直し、確認します。uv が見つからず、python3 がシステムの Python に戻っていれば削除されています。
uv --versionuv: command not foundpython3 --versionPython 3.14.4実際に試してみる
サーバーがなければ、以下のサービスで数分あれば Ubuntu サーバーを作れます。 このドキュメントは DigitalOcean で検証しました。
このドキュメントは役に立ちましたか? 間違いや変わった点があればお知らせください。
内容の修正を依頼