Pythonのvenvとpipは、プロジェクトごとに使うライブラリを分けて管理するための基本ツールです。
Pythonをインストールした直後は、標準ライブラリだけで学習できます。しかし、Excel操作、Webアプリ、データ分析などへ進むと、外部パッケージを入れる場面が出てきます。

venvは『場所を分ける』、pipは『必要なものを入れる』。この2つを分けて考えると理解しやすくなります。
この記事では、venvとpipの役割、仮想環境を作る理由、基本コマンド、requirements.txtの考え方、初心者が避けたい失敗を整理します。
次の図では、venvをプロジェクトごとに分かれた専用の部屋として見てください。

次の図では、pip installで外部パッケージがどこへ入り、コードからどう使われるかを確認してください。

まず結論:venvは環境、pipはインストール担当
Python公式ドキュメントでは、venvは仮想環境を作成する標準ライブラリとして説明されています。Python Packaging User Guideでは、pipはパッケージの推奨インストーラとして紹介されています。
なぜ仮想環境が必要なのか
仮想環境を使う理由は、プロジェクトごとに必要なライブラリやバージョンが違うからです。
たとえば、ある学習用プロジェクトでは古いライブラリを使い、別のWebアプリでは新しいライブラリを使うことがあります。すべてを同じ場所へ入れると、片方の更新がもう片方を壊すことがあります。
venvを使うと、プロジェクト専用のPython環境を作り、その中にだけパッケージを入れられます。
venvで仮想環境を作る
プロジェクトのフォルダで、次のように仮想環境を作ります。
# macOS / Linux
python3 -m venv .venv
source .venv/bin/activate
# Windows PowerShell
py -m venv .venv
.venv\Scripts\Activate.ps1
.venvは仮想環境のフォルダ名です。名前は変えられますが、初心者のうちはプロジェクト内に.venvとして作ると見通しがよくなります。Python本体のインストールがまだの場合は、Windows版Pythonのインストール方法から確認してください。
pipでパッケージを入れる
仮想環境を有効にしたら、pipで必要なパッケージを入れます。
python -m pip install requests
python -m pip install openpyxl
pip installと書く例も多いですが、初心者のうちはpython -m pipを使うと、今使っているPythonとpipの対応を揃えやすくなります。
入れたパッケージは、コード内でimportして使います。import文の基本はPythonのimport文、モジュールとパッケージの違いはモジュール/パッケージ/ライブラリの違いで整理しています。
パッケージを確認する
現在の環境に入っているパッケージを確認したい場合は、次のコマンドを使います。
python -m pip list
仮想環境を切り替えると、表示されるパッケージも変わります。ここで『プロジェクトごとに中身が分かれている』ことを確認できます。
requirements.txtで共有する
別のPCや本番環境で同じパッケージを入れたい場合は、requirements.txtを使うことがあります。
python -m pip freeze > requirements.txt
python -m pip install -r requirements.txt
1行目は現在の環境に入っているパッケージ一覧を書き出します。2行目は、その一覧をもとにパッケージをまとめてインストールします。
Excel操作やDjangoへ進むと必要になる
外部パッケージを使う記事では、venvとpipの理解が前提になりやすいです。
- PythonでExcelを操作する方法では、openpyxlのような外部パッケージを使う
- Djangoとは?では、Webフレームワークをインストールして使う
- 学習用の小さなコードでも、環境を分けておくと後で整理しやすい
初心者がつまずきやすいポイント
| つまずき | まずこう理解する |
|---|---|
| 仮想環境を作らずに全部入れる | プロジェクトごとに分ける方が壊れにくい |
| どのPythonにpipで入ったか分からない | python -m pipで対応を揃える |
| activateしないと絶対使えないと思う | 有効化は便利だが、環境内のPythonを直接指定する方法もある |
| requirements.txtを仮想環境そのものだと思う | 必要パッケージのリストであり、環境本体ではない |
よくある疑問
仮想環境フォルダはGitに入れる?
通常、.venvのような仮想環境フォルダそのものはGitへ入れません。代わりに、必要なパッケージを再現するためのrequirements.txtなどを共有します。
pipとimportは同じ?
同じではありません。pipはパッケージを環境へインストールするコマンドで、importはPythonコードの中でモジュールを読み込む文です。先にpipで入れ、コード内でimportして使う、という順番で考えると整理できます。
コマンドを実行する場所を分けて考える
venvやpipでつまずく原因の多くは、Pythonコードの中で実行するものと、ターミナルで実行するものが混ざることです。
| やりたいこと | 実行する場所 | 例 |
|---|---|---|
| 仮想環境を作る | ターミナル | python -m venv .venv |
| パッケージを入れる | ターミナル | python -m pip install requests |
| パッケージを使う | Pythonコード | import requests |
| プログラムを実行する | ターミナル | python app.py |
Pythonの対話モードでpython -m pip install ...を入力すると、Pythonの文として解釈されてエラーになります。コマンドはターミナル、importはPythonコード、と分けて考えましょう。
仮想環境は作り直せる
仮想環境は、壊したら終わりというものではありません。必要なパッケージを再現できる情報があれば、削除して作り直せます。
# 例: 作り直しの流れ
# 1. .venv フォルダを削除
# 2. 仮想環境を作成
python -m venv .venv
# 3. 有効化後にパッケージを再インストール
python -m pip install -r requirements.txt
そのため、仮想環境フォルダそのものを大事に保管するより、必要なパッケージの一覧を残すことが重要です。
pip installで入るものとimport名が違うことがある
パッケージ名とimport名は、いつも同じとは限りません。たとえば、インストール時の名前とコード内で読み込む名前が違うライブラリもあります。
python -m pip install beautifulsoup4
# Pythonコード側
from bs4 import BeautifulSoup
エラーが出たときは、pipで入れた名前だけでなく、公式ドキュメントやパッケージのREADMEに書かれているimport例を確認します。
練習用プロジェクトの流れ
最初の練習では、次の順番で1つの小さなフォルダを作ると流れをつかみやすいです。
この流れを1回経験しておくと、DjangoやExcel操作の記事に進んだときも、環境作成とコードの実行を分けて理解できます。
公式情報と関連して読みたい記事
- Python公式ドキュメント: venv
- Python Packaging User Guide: Installing Packages
- Pythonのインストール方法
- Pythonのimport文
- モジュール/パッケージ/ライブラリの違い
まとめ
venvとpipは、Pythonで外部ライブラリを使うための土台です。
この2つを押さえると、Excel操作、Django、API利用など、外部ライブラリを使う記事へ進みやすくなります。
