PR

【Python】venvとpipとは?仮想環境とパッケージ管理を初心者向けに解説

unDraw準拠の開発環境イラストを使ったPython venvとpip記事のアイキャッチ画像 Python

Pythonのvenvpipは、プロジェクトごとに使うライブラリを分けて管理するための基本ツールです。

Pythonをインストールした直後は、標準ライブラリだけで学習できます。しかし、Excel操作、Webアプリ、データ分析などへ進むと、外部パッケージを入れる場面が出てきます。

venvは『場所を分ける』、pipは『必要なものを入れる』。この2つを分けて考えると理解しやすくなります。

この記事では、venvとpipの役割、仮想環境を作る理由、基本コマンド、requirements.txtの考え方、初心者が避けたい失敗を整理します。

次の図では、venvをプロジェクトごとに分かれた専用の部屋として見てください。

Project AとProject Bが別々のvenvという部屋を持ちパッケージが混ざらないことを示すイメージ図
venvは、プロジェクトごとに必要なパッケージを分けて置くための専用スペースです。

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

PyPIからpip installでvenv内のsite-packagesへ入りPythonコードがimportして使う流れを示す説明図
pipは外部パッケージを環境へ入れ、Pythonコードはimportでそのパッケージを読み込みます。
スポンサーリンク

まず結論: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つの小さなフォルダを作ると流れをつかみやすいです。

  • プロジェクト用フォルダを作る
  • python -m venv .venvで仮想環境を作る
  • 仮想環境を有効化する
  • python -m pip install openpyxlなどで必要なパッケージを入れる
  • Pythonファイルでimportして動かす
  • python -m pip freeze > requirements.txtで一覧を残す

この流れを1回経験しておくと、DjangoやExcel操作の記事に進んだときも、環境作成とコードの実行を分けて理解できます。

公式情報と関連して読みたい記事

まとめ

venvとpipは、Pythonで外部ライブラリを使うための土台です。

  • venvはプロジェクト専用の仮想環境を作る
  • pipはパッケージをインストールする
  • python -m pipを使うとPythonとpipの対応を揃えやすい
  • requirements.txtで必要パッケージを再現しやすくする

この2つを押さえると、Excel操作、Django、API利用など、外部ライブラリを使う記事へ進みやすくなります。

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