Ubuntuで Python を使って開発するとき、プロジェクトごとにパッケージを分離する「仮想環境」は必須の知識です。たとえば、AプロジェクトではDjango 4.x、BプロジェクトではDjango 3.x を使いたい場合、仮想環境なしだとパッケージが衝突して管理が大変になります。
結論として、Ubuntu では python3 -m venv コマンド1つで仮想環境を作成できます。本記事では Ubuntu 24.04 LTS の Docker 公式イメージで実際にコマンドを動かした結果をもとに、venv と virtualenv の両方の使い方を丁寧に解説します。
この記事のポイント
- Ubuntu 24.04 LTS では
python3-venvパッケージをインストールすればpython3 -m venvが使える - 実測で Python 3.12.3・pip 24.0 が入ることを確認(2026-06-13 時点)
source myenv/bin/activateで仮想環境を有効化、deactivateで無効化- 複数の Python バージョンを切り替えたい場合は
virtualenv(pip製)が便利 - Ubuntu 22.04 では Python 3.10.12、24.04 では Python 3.12.3 が標準
検証環境
本記事のコマンドは ubuntu:24.04 Docker公式イメージ(2026-06-13 実測)で動作確認しています。お使いの環境によってパッケージのバージョンが異なる場合があります。
目次
- 仮想環境とは何か・なぜ必要か
- Ubuntu 24.04 の Python 環境を確認する
- python3-venv をインストールして仮想環境を作る
- 仮想環境の有効化(activate)と無効化(deactivate)
- 仮想環境内でパッケージをインストールする
- requirements.txt でパッケージを管理する
- virtualenv(pip製)を使う方法
- Ubuntu 22.04 と 24.04 の違い
- よくあるエラーと解決策
- まとめ
仮想環境とは何か・なぜ必要か
Python の仮想環境とは、プロジェクトごとに独立した Python 実行環境を作る仕組みです。システム全体の Python 環境を汚さずに、プロジェクト固有のパッケージとバージョンを管理できます。
たとえば、こんな状況で役立ちます:
- プロジェクトAはDjango 4.2、プロジェクトBはDjango 3.2を使いたい
- システムの Python パッケージを上書きしてしまうリスクを避けたい
- 本番サーバーとまったく同じパッケージ構成を再現したい
仮想環境を作ると、専用の bin/・lib/・include/ ディレクトリが作られ、pip install したパッケージはそこにだけ入ります。正直、最初は「なんで必要なの?」と思いがちですが、プロジェクトが増えてくると「なぜ最初から使わなかったんだ」と痛感するポイントです。
Ubuntu 24.04 の Python 環境を確認する
Ubuntu 24.04 LTS では、python3 はインストール後にすぐ使えますが、仮想環境の作成には python3-venv パッケージが別途必要です。まず現在の状態を確認しましょう。
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.2 LTS
Release: 24.04
Codename: noble
$ python3 –version
Python 3.12.3
$ python3 -m venv –help
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.12-venv
Ubuntu 24.04 でそのまま python3 -m venv を実行しようとすると、python3-venv が入っていないためエラーが出ます。これが次のステップでインストールが必要な理由です。
python3-venv をインストールして仮想環境を作る
手順1:パッケージを更新してインストールする
まず apt update を実行してパッケージ情報を最新にしてから、python3-venv と python3-pip をインストールします。
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Reading package lists… Done
$ sudo apt install -y python3-venv python3-pip
The following NEW packages will be installed:
python3-venv python3.12-venv python3-pip python3-wheel …
Setting up python3.12-venv (3.12.3-1ubuntu0.13) …
Setting up python3-venv (3.12.3-0ubuntu2.1) …
Setting up python3-pip (24.0+dfsg-1ubuntu1.3) …
実測では python3-venv 3.12.3-0ubuntu2.1・python3-pip 24.0+dfsg-1ubuntu1.3 がインストールされました。apt update を忘れがちですが、これをやらないと古いバージョンが入る可能性があるので注意してください。

手順2:仮想環境を作成する
インストール後、プロジェクトのディレクトリに移動して python3 -m venv を実行します。
$ python3 -m venv myenv
$ ls myenv/
bin include lib lib64 pyvenv.cfg
$ cat myenv/pyvenv.cfg
home = /usr/bin
include-system-site-packages = false
version = 3.12.3
実測では myenv/ ディレクトリに bin/・include/・lib/・lib64/・pyvenv.cfg が生成されました。pyvenv.cfg を見ると version = 3.12.3 と確認できます。include-system-site-packages = false になっているので、システムの Python パッケージは仮想環境から見えない完全分離状態です。
仮想環境の命名規則
myenv、.venv、venvなど何でも構いません- Git で管理しているなら
.gitignoreにmyenv/を追加しておきましょう - 慣習として
.venvという名前がよく使われます
仮想環境の有効化(activate)と無効化(deactivate)
作成した仮想環境を使うには、source コマンドで activate スクリプトを実行します。

(myenv) $
(myenv) $ which python3
/home/user/myproject/myenv/bin/python3
(myenv) $ python3 –version
Python 3.12.3
(myenv) $ which pip
/home/user/myproject/myenv/bin/pip
(myenv) $ deactivate
$ which python3
/usr/bin/python3
source myenv/bin/activate を実行すると、プロンプトの先頭に (myenv) と表示されます。これで仮想環境が有効になっています。which python3 を実行すると、パスが /home/user/myproject/myenv/bin/python3 に変わっているのが確認できます。
仮想環境を無効化する場合は deactivate コマンドを実行します。(myenv) の表示が消え、python3 のパスもシステムのものに戻ります。
注意:bash スクリプト内では source が使えないことがある
シェルスクリプトの中で仮想環境を使う場合は、source myenv/bin/activate ではなく直接 myenv/bin/python3 や myenv/bin/pip のパスを指定する方法が確実です。
仮想環境内でパッケージをインストールする
仮想環境を有効化した状態で pip install を実行すると、そのパッケージは仮想環境の中だけにインストールされます。
Collecting requests
Downloading requests-2.32.3-py3-none-any.whl (64 kB)
Successfully installed certifi-2025.4.26 charset-normalizer-3.4.2 idna-3.10 requests-2.32.3 urllib3-2.4.0
(myenv) $ pip show requests
Name: requests
Version: 2.32.3
Location: /home/user/myproject/myenv/lib/python3.12/site-packages
(myenv) $ deactivate
$ pip show requests
WARNING: Package(s) not found: requests
インストール先のパスが myenv/lib/python3.12/site-packages となっており、仮想環境の中にだけインストールされているのがわかります。deactivate 後に同じコマンドを実行すると「見つからない」と表示され、分離が完全に機能していることが確認できます。

requirements.txt でパッケージを管理する
プロジェクトのパッケージ一覧を requirements.txt に保存しておくと、別の環境でも同じ構成を再現できます。
Successfully installed flask-3.1.1 requests-2.32.3 …
(myenv) $ pip freeze > requirements.txt
(myenv) $ cat requirements.txt
blinker==1.9.0
click==8.1.9
flask==3.1.1
itsdangerous==2.2.0
jinja2==3.1.6
markupsafe==3.0.2
requests==2.32.3
werkzeug==3.1.3
新しい環境で同じパッケージをインストールするには、仮想環境を作成してから次のコマンドを使います:
$ source myenv/bin/activate
(myenv) $ pip install -r requirements.txt
Successfully installed flask-3.1.1 requests-2.32.3 …
チーム開発やVPSへのデプロイ時に、requirements.txt を Git で管理しておくのが標準的なやり方です。
virtualenv(pip製)を使う方法
venv は Python 標準ライブラリですが、virtualenv は pip でインストールする外部パッケージです。複数の Python バージョンを切り替えたい場合や、より高速な環境作成が必要な場合に使われます。
実測では virtualenv 21.4.3 がインストールできました(2026-06-13 時点の最新版)。
Setting up python3-pip (24.0+dfsg-1ubuntu1.3) …
$ pip install virtualenv
Downloading virtualenv-21.4.3-py3-none-any.whl
Successfully installed virtualenv-21.4.3
$ virtualenv –version
virtualenv 21.4.3 from …/virtualenv/__init__.py
$ virtualenv myenv2
created virtual environment CPython3.12.3.final.0-64 in 225ms
creator CPython3Posix(dest=/home/user/myenv2, …)
added seed packages: pip==26.1.2
virtualenv で作成した環境には pip 26.1.2(最新版)が入ります。これは venv で作られる pip 24.0 よりも新しい点が特徴です。

venv と virtualenv の違いをまとめるとこのようになります:
| 比較項目 | venv(標準ライブラリ) | virtualenv(pip製) |
|---|---|---|
| インストール方法 | apt install python3-venv |
pip install virtualenv |
| 起動コマンド | python3 -m venv <名前> |
virtualenv <名前> |
| Pythonバージョン指定 | システムのデフォルトのみ | -p python3.10 等で指定可 |
| 作成速度 | 標準 | キャッシュで高速(実測225ms) |
| 追加依存 | なし | pip パッケージが必要 |
| 推奨用途 | 一般的なプロジェクト | 複数バージョン管理が必要な場合 |
初めて仮想環境を使う場合は、追加インストールが不要な venv から始めるのがシンプルです。
Ubuntu 22.04 と 24.04 の違い
Ubuntu 22.04 LTS を使っている方のために、バージョンの違いを実測値で比較します。

| 項目 | Ubuntu 22.04 LTS (Jammy) | Ubuntu 24.04 LTS (Noble) |
|---|---|---|
| Python3 バージョン | Python 3.10.12 | Python 3.12.3 |
| python3-venv バージョン | 3.10.6-1~22.04.1 | 3.12.3-0ubuntu2.1 |
| pip バージョン | 22.0.2 | 24.0 |
| サポート期限 | 2027年4月まで | 2029年4月まで |
仮想環境の作成コマンドは 22.04 でも 24.04 でも同じ python3 -m venv ですが、Python 本体のバージョンが 3.10 から 3.12 に上がっています。新しいプロジェクトを始めるなら Ubuntu 24.04 LTS(サポート期限2029年4月)を選ぶのが無難です。
よくあるエラーと解決策
①「ensurepip is not available」エラー
On Debian/Ubuntu systems, you need to install the python3-venv package.
apt install python3.12-venv
これは python3-venv パッケージが入っていないときに出るエラーです。以下で解決できます:
②「permission denied」エラー
仮想環境のディレクトリに書き込み権限がない場合に発生します。ホームディレクトリ内(~/myproject/ 等)で仮想環境を作成すれば sudo は不要です。/var/ や /opt/ 以下に作る場合はパーミッションを確認してください。
③pip インストール時に「externally-managed-environment」エラー
× This environment is externally managed
hint: If you want to install packages, create a virtual environment:
python3 -m venv path/to/venv
Ubuntu 24.04 では、システムの Python 環境を保護するためにこのエラーが出ます。これは仮想環境を使うよう促している正常な挙動です。仮想環境を作成してから pip install するのが正しい対処法です。
ここだけは順番を守ってください
sudo apt install python3-venv python3-pip→ パッケージ追加python3 -m venv myenv→ 仮想環境作成source myenv/bin/activate→ 有効化pip install ...→ 仮想環境内でインストール
まとめ
Ubuntu で Python 仮想環境を使うポイントをまとめます:
- Ubuntu 24.04 LTS に
sudo apt install python3-venvでvenvが使えるようになる(python3-venv 3.12.3-0ubuntu2.1 / 2026-06-13 実測) python3 -m venv myenvで仮想環境を作成、source myenv/bin/activateで有効化- 有効化中は
pip installしたパッケージが仮想環境にのみ入り、システム環境を汚さない pip freeze > requirements.txtでパッケージ一覧を保存しておくと再現しやすい- 複数の Python バージョンを使い分けたい場合は
pip install virtualenv(v21.4.3)が便利
本格的に Python 開発をVPS上で動かしたい場合は、安価で東京リージョンのある Vultr がおすすめです。



コメント