UbuntuでPython仮想環境(venv/virtualenv)を作成する方法

開発環境


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 実測)で動作確認しています。お使いの環境によってパッケージのバージョンが異なる場合があります。

目次

  1. 仮想環境とは何か・なぜ必要か
  2. Ubuntu 24.04 の Python 環境を確認する
  3. python3-venv をインストールして仮想環境を作る
  4. 仮想環境の有効化(activate)と無効化(deactivate)
  5. 仮想環境内でパッケージをインストールする
  6. requirements.txt でパッケージを管理する
  7. virtualenv(pip製)を使う方法
  8. Ubuntu 22.04 と 24.04 の違い
  9. よくあるエラーと解決策
  10. まとめ

仮想環境とは何か・なぜ必要か

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 パッケージが別途必要です。まず現在の状態を確認しましょう。




ubuntu@linuxlab: ~
$ lsb_release -a
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-venvpython3-pip をインストールします。




ubuntu@linuxlab: ~
$ sudo apt update
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.1python3-pip 24.0+dfsg-1ubuntu1.3 がインストールされました。apt update を忘れがちですが、これをやらないと古いバージョンが入る可能性があるので注意してください。

python3-venv インストールと仮想環境の作成(Ubuntu 24.04 LTS 実測)
python3-venv インストールと仮想環境の作成(Ubuntu 24.04 LTS 実測)

手順2:仮想環境を作成する

インストール後、プロジェクトのディレクトリに移動して python3 -m venv を実行します。




ubuntu@linuxlab: ~/myproject
$ mkdir myproject && cd myproject
$ 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.venvvenv など何でも構いません
  • Git で管理しているなら .gitignoremyenv/ を追加しておきましょう
  • 慣習として .venv という名前がよく使われます

仮想環境の有効化(activate)と無効化(deactivate)

作成した仮想環境を使うには、source コマンドで activate スクリプトを実行します。

activate と deactivate の流れ(Ubuntu 24.04 LTS 実測)
activate と deactivate の流れ(Ubuntu 24.04 LTS 実測)



ubuntu@linuxlab: ~/myproject
$ source myenv/bin/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/python3myenv/bin/pip のパスを指定する方法が確実です。

仮想環境内でパッケージをインストールする

仮想環境を有効化した状態で pip install を実行すると、そのパッケージは仮想環境の中だけにインストールされます。




ubuntu@linuxlab: ~/myproject
(myenv) $ pip install requests
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 後に同じコマンドを実行すると「見つからない」と表示され、分離が完全に機能していることが確認できます。

venv の pip/パッケージ分離確認(Ubuntu 24.04 LTS 実測)
venv の pip/パッケージ分離確認(Ubuntu 24.04 LTS 実測)

requirements.txt でパッケージを管理する

プロジェクトのパッケージ一覧を requirements.txt に保存しておくと、別の環境でも同じ構成を再現できます。




ubuntu@linuxlab: ~/myproject
(myenv) $ pip install flask requests
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

新しい環境で同じパッケージをインストールするには、仮想環境を作成してから次のコマンドを使います:




ubuntu@linuxlab: ~/myproject
$ python3 -m venv myenv
$ 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 時点の最新版)。




ubuntu@linuxlab: ~
$ sudo apt install -y python3-pip
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 vs virtualenv 機能比較(Ubuntu 24.04 LTS 実測)
venv vs virtualenv 機能比較(Ubuntu 24.04 LTS 実測)

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 を使っている方のために、バージョンの違いを実測値で比較します。

Python環境比較:Ubuntu 22.04 vs 24.04(実測)
Python環境比較:Ubuntu 22.04 vs 24.04(実測)
項目 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」エラー




ubuntu@linuxlab: ~
The virtual environment was not created successfully because ensurepip is not available.
On Debian/Ubuntu systems, you need to install the python3-venv package.
apt install python3.12-venv

これは python3-venv パッケージが入っていないときに出るエラーです。以下で解決できます:




ubuntu@linuxlab: ~
$ sudo apt install python3-venv

②「permission denied」エラー

仮想環境のディレクトリに書き込み権限がない場合に発生します。ホームディレクトリ内(~/myproject/ 等)で仮想環境を作成すれば sudo は不要です。/var//opt/ 以下に作る場合はパーミッションを確認してください。

③pip インストール時に「externally-managed-environment」エラー




ubuntu@linuxlab: ~
error: 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-venvvenv が使えるようになる(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)が便利
著者アイコン
著者アイコン

仮想環境を使い始めると「なんで最初から使わなかったんだ」と思うはずです。特にVPSでサーバーを運用するようになると、プロジェクトごとに環境を分けることの大切さが実感できます。まずは手元の Ubuntu でひとつプロジェクトを作って試してみてください。

本格的に Python 開発をVPS上で動かしたい場合は、安価で東京リージョンのある Vultr がおすすめです。

コメント

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