こんにちは、かつコーチです。
「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, 初心者向け, 環境構築