【Python】venvで仮想環境を作る方法:なぜ仮想環境が必要か

Python

こんにちは、かつコーチです。

「pipでインストールしたはずのライブラリが、別のプロジェクトで動かない」という経験はありませんか。
私も初心者の頃、これで半日ほど悩んだことがあります。
この記事では、venvとは何か、なぜ仮想環境が必要なのかを、作成・有効化・無効化の手順とあわせて解説します。

venvとは?

プロジェクトごとに独立した環境を作る仕組み

venv(ブイエンブ)とは、Python 3に標準で搭載されている、仮想環境を作るためのツールです。
仮想環境とは、プロジェクトごとに専用の「ライブラリの置き場所」を用意する仕組みのことです。
仮想環境を作らずにライブラリをインストールすると、PC全体で共有される場所にインストールされます。
すると、プロジェクトAで使うライブラリのバージョンと、プロジェクトBで使うバージョンが衝突することがあります。

なぜ仮想環境が必要なのか

例えば、プロジェクトAはDjango 4.2、プロジェクトBはDjango 5.0を必要としているとします。
PC全体で1つのDjangoしかインストールできないとしたら、両方を同時に開発することはできません。
venvを使えば、プロジェクトごとに専用の環境を作り、それぞれ異なるバージョンのライブラリを共存させられます。
「このプロジェクトはこの環境だけで完結する」という状態を作れることが、venvの一番のメリットです。

venvの基本的な使い方

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

プロジェクトのディレクトリ内で、以下のコマンドを実行します。

cd my-project
python3 -m venv venv

コマンドの最後のvenvは、作成する仮想環境フォルダの名前です。
慣習的にvenvという名前をつけることが多いですが、.venvなど任意の名前でも構いません。

手順2:仮想環境を有効化する

作成しただけでは、仮想環境はまだ使われていません。
以下のコマンドで有効化(アクティベート)します。

# macOS / Linuxの場合
source venv/bin/activate

# Windowsの場合
venv\Scripts\activate

有効化に成功すると、ターミナルのプロンプトの先頭に(venv)という表示が付きます。
この状態でpipを使ってインストールしたライブラリは、この仮想環境の中だけにインストールされます。

手順3:仮想環境を無効化する

作業が終わったら、以下のコマンドで無効化します。

deactivate

無効化すると、プロンプトの(venv)表示が消え、システム全体の環境に戻ります。

よくあるつまずきポイント:gitに仮想環境ごと入れてしまう

Before:venvフォルダをそのままコミットしてしまった例

私が初心者の頃、venvフォルダごとgitにコミットしてしまい、こんな指摘を受けたことがあります。

$ git add .
$ git status
        new file:   venv/lib/python3.12/site-packages/... (数千ファイル)

仮想環境のフォルダには、ライブラリの実体ファイルが大量に含まれています。
そのままコミットすると、リポジトリが不必要に肥大化し、レビューもしづらくなります。

After:.gitignoreで除外し、requirements.txtを共有する

# .gitignoreに追記
echo "venv/" >> .gitignore

仮想環境そのものは共有せず、必要なライブラリの一覧だけをrequirements.txtに記録して共有するのが正しい方法です。
これにより、他の開発者はpip install -r requirements.txtで同じ環境を再現できます。
requirements.txtの書き方は、次の記事で詳しく解説します。

まとめ

この記事のポイント

  • venvはPython標準の仮想環境作成ツールである
  • プロジェクトごとに独立した環境を作ることで、ライブラリのバージョン衝突を防げる
  • 仮想環境はsource venv/bin/activateで有効化、deactivateで無効化する
  • 仮想環境フォルダ自体はgitにコミットせず、.gitignoreで除外する

次に読むべき記事

仮想環境を作れるようになったら、次はライブラリの管理方法を学びましょう。
「pipでパッケージを管理する基本:requirements.txtの書き方」で詳しく解説しています。

タグ: Python, 初心者向け, 環境構築

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