Pythonのvenvとpipとは|仮想環境を初心者向けに解説

#Python#venv#pip#仮想環境#初心者
MAO先生と生徒うみちゃん、生徒りくちゃんが教室でPythonのvenvとpipによる仮想環境を学ぶイラスト
MAO先生と生徒たちを紹介

この記事でわかること

  • Pythonでvenvを使って仮想環境を作る理由
  • pipでパッケージを入れる場所と、仮想環境の関係
  • .venvをGitで管理しない方がよい理由
  • requirements.txtで環境を再現する基本
  • WindowsとmacOS/Linuxでコマンドが少し違う理由

結論・重要ポイント

  1. venvは、プロジェクトごとにPythonとパッケージの置き場所を分ける標準機能です。
  2. pipは、Pythonパッケージをインストール・更新するための標準的なツールです。
  3. 仮想環境を有効化すると、pip installしたパッケージはその環境へ入ります。
  4. .venvフォルダそのものはGitへ入れず、必要なパッケージ名をrequirements.txtなどで残すのが基本です。
  5. 仮想環境はコピーして持ち運ぶより、必要になった場所で作り直す前提で考えると安全です。

対象読者と前提知識

この記事は、Pythonを学び始めて、pip installvenv仮想環境という言葉で混乱している初学者向けです。

前提知識は、Pythonファイルを実行したことがある、またはこれから実行してみたい、という程度で問題ありません。この記事では、業務PCや会社PCの全体設定を変える話ではなく、学習用・小規模開発用のプロジェクトフォルダ内で環境を分ける考え方を扱います。

3人による授業形式の会話

生徒うみちゃん・疑問を感じている

生徒うみちゃん

Pythonでライブラリを入れるたびにvenvって出てくるんだけど、普通にpip installすればいいじゃん!何が違うってこと?

MAO先生・説明中

MAO先生

結論から言うと、pipはパッケージを入れる道具で、venvは入れ場所を分ける仕組みなのです。道具と作業部屋を分けて考えると分かりやすいですね。

生徒りくちゃん・興味深く聞いている

生徒りくちゃん

つまり、プロジェクトAとプロジェクトBで必要なパッケージの種類やバージョンが違っても、混ざりにくくできるということですね!

MAO先生・笑顔

MAO先生

よく気づきましたね!Python公式ドキュメントでも、仮想環境はプロジェクトに必要なライブラリを分けて持つためのものとして説明されています。

生徒うみちゃん・興味深く聞いている

生徒うみちゃん

じゃあ、毎回プロジェクトの中に.venvを作って、そこに入れればいいってこと?それなら覚えやすいじゃん。

MAO先生・自信のある表情

MAO先生

学習用や小さな開発では、その考え方で始めると整理しやすいです。ただし、.venvフォルダ自体はGitに入れず、作り直せるものとして扱うのが基本になります。

生徒りくちゃん・疑問を感じている

生徒りくちゃん

.venvをGitに入れない場合、別のPCで同じ環境を作るにはどうすればよいのでしょうか?

MAO先生・説明中

MAO先生

そこでrequirements.txtのような依存関係の一覧を使います。入れたパッケージ名とバージョンを記録しておけば、新しい仮想環境へ入れ直しやすくなります。

生徒うみちゃん・自信のある表情

生徒うみちゃん

じゃあ、.venvを丸ごとコピーすればもっと早いじゃん!別のPCにそのまま持っていけば楽そう。

MAO先生・注意している

MAO先生

そこは早とちりです。仮想環境の中には、そのPC上のPython実行ファイルへのパスが含まれることがあります。コピーより、同じ手順で作り直す方がよいケースが多いのです。

生徒りくちゃん・興味深く聞いている

生徒りくちゃん

WindowsとmacOSで有効化コマンドが違うのも、環境の中にある実行ファイルやスクリプトの場所が違うからなのですね。

MAO先生・笑顔

MAO先生

その通りです。最初は、作る、有効化する、入れる、記録する、作り直す、の順番で覚えると十分です。仕組みを知っておくと、エラーが出たときにも落ち着いて確認できるようになります。

コード・操作手順・具体例

1. 仮想環境を作る

プロジェクトフォルダの中で、.venvという名前の仮想環境を作る例です。次のコマンドは学習用プロジェクト内で実行してください。

Windowsの例です。

py -m venv .venv

macOS/Linuxの例です。

python3 -m venv .venv

この操作により、プロジェクト内に**.venvフォルダが作られます。Python公式ドキュメントでは、仮想環境は.venvvenv**という名前でプロジェクト内に置かれることが多いと説明されています。

2. 仮想環境を有効化する

作っただけでは、まだ現在の端末が仮想環境を使う状態とは限りません。有効化すると、端末のPATHに仮想環境用のPythonやpipが優先されるようになります。

Windows PowerShellの例です。

.venv\Scripts\Activate.ps1

macOS/Linuxの例です。

source .venv/bin/activate

Windowsでは実行ポリシーによりActivate.ps1が実行できないことがあります。会社PCや管理されたPCでは、無理に設定を変えず、管理者や担当者に確認してください。

3. pipでパッケージを入れる

仮想環境を有効化した状態で、例としてrequestsをインストールするコマンドです。このコマンドはインターネットからパッケージを取得します。業務PCでは通信先や利用ルールを確認してから実行してください。

python -m pip install requests

公式のPython Packaging User Guideでは、仮想環境を有効化している間、pipはその仮想環境へパッケージをインストールすると説明されています。

4. 入っているパッケージを記録する

別のPCや別の人が同じ環境を作れるようにするには、パッケージ一覧をrequirements.txtへ書き出します。

python -m pip freeze > requirements.txt

このコマンドは、現在の仮想環境に入っているパッケージとバージョンを一覧にします。.venvではなく、requirements.txtをGitで管理する考え方です。

5. 別の環境で再現する

新しい場所で仮想環境を作ったあと、requirements.txtからまとめてインストールする例です。

python -m pip install -r requirements.txt

古いプロジェクトではパッケージの組み合わせが合わないこともあります。失敗した場合は、Pythonのバージョン、エラーメッセージ、依存パッケージの指定を順番に確認します。

よくある誤解や失敗

誤解1. pipとvenvは同じもの

pipはパッケージを入れる道具です。venvは、プロジェクトごとにパッケージを分ける環境を作る仕組みです。役割が違います。

誤解2. venvを使えば何でも安全

仮想環境は、パッケージの混在を減らすための仕組みです。信頼できないパッケージを安全化する仕組みではありません。知らないパッケージを入れる前には、公式資料、配布元、ライセンス、業務ルールを確認します。

誤解3. .venvをGitへ入れる

.venvは作り直せるものとして扱います。プロジェクトコードや設定ファイルと一緒にGitへ入れると、容量が大きくなり、別のPCで壊れやすくなります。

誤解4. 仮想環境をコピーして配ればよい

Python公式ドキュメントでは、仮想環境は移動やコピーを前提にせず、必要なら再作成するものとして説明されています。依存関係の一覧から作り直す方が、原因を追いやすくなります。

Q&A

Q1. 仮想環境を毎回有効化しないといけませんか?

端末から短いコマンドで作業する場合は、有効化すると分かりやすいです。ただし、公式ドキュメントでは、仮想環境内のPythonをフルパスで指定すれば、有効化しなくても使えると説明されています。初学者は、まず有効化してから作業する流れで覚えるとよいです。

Q2. .venvという名前でないといけませんか?

必須ではありません。venvや別名でも作れます。ただし、プロジェクト内に**.venv**という名前で置く例は多く、エディタやチーム内の説明とも合わせやすいです。

Q3. requirements.txtだけで完全に同じ環境になりますか?

完全に同じとまでは言い切れません。Python本体のバージョン、OS、CPU、外部ライブラリの影響を受けることがあります。ただ、学習用や小規模な自動化では、環境を再現するための出発点として有効です。

Q4. pip installでエラーが出たら何を見ればよいですか?

まず仮想環境が有効化されているか、python -m pip —versionでpipの場所を確認します。次に、パッケージ名、Pythonのバージョン、ネットワーク制限、エラーメッセージを順番に見ます。

要点まとめ

  • venvはプロジェクトごとにPython環境を分けるための標準機能です。
  • pipはパッケージをインストール・更新するためのツールです。
  • .venvはGitへ入れず、必要な依存関係をrequirements.txtなどへ記録します。
  • 仮想環境はコピーより再作成を前提にすると、別PCや将来の自分が扱いやすくなります。
  • 初学者は、作る、有効化する、入れる、記録する、再現する、の順番で覚えると迷いにくいです。

公式資料・参考資料

内容に合うCTA

Python学習で、venvpiprequirements.txt、エディタ設定が混ざって分からなくなる場合は、最初に小さな手順表を作ると迷いにくくなります。MAO工房では、個別指導サービスお問い合わせフォームから、Python学習や小さな業務自動化の環境づくりをご相談いただけます。

授業に登場する3人については、MAO先生のIT授業 キャラクター紹介で確認できます。

MAO工房に相談できます

Python学習や開発環境づくりを相談できます

venv、pip、requirements.txt、エディタ設定、実務で使う小さな自動化まで、つまずきやすい環境づくりを一緒に整理します。

  • ✓ Pythonとエディタの設定を確認
  • ✓ 仮想環境とパッケージ管理を整理
  • ✓ 学習用コードから実務自動化まで提案