Pythonでパッケージ(ライブラリ)を使う開発では、仮想環境(venv)を作るのが基本です。仮想環境とは、プロジェクトごとに独立したPython環境のことで、インストールしたパッケージがほかのプロジェクトやシステム全体に影響しません。「プロジェクトAではこのライブラリのバージョン1、プロジェクトBではバージョン2」といった使い分けが、衝突なく行えます。
仮想環境は標準のvenvで作り、パッケージはpipで管理します。つまずきやすいのは、仮想環境を「有効化」せずにpip installしてしまい、システム全体(グローバル)に入れてしまうことと、有効化のコマンドがWindowsとMac/Linuxで違うことです。この記事では、実機のPythonで実際に仮想環境を作りながら、venvとpipを整理します。
- 仮想環境は
python -m venv myenvで作ります(myenvはフォルダ名)。 - 有効化:Windowsは
myenv\Scripts\activate、Mac/Linuxはsource myenv/bin/activate。 - パッケージは
pip install パッケージ名で追加します。 - 必ず有効化してから
pip installします(忘れるとグローバルに入ります)。 pip freeze > requirements.txtで一覧を保存、pip install -r requirements.txtで再現します。- 仮想環境を抜けるには
deactivateです。
関連して、Pythonの基本は関数(def)、requirements.txtのようなファイルの扱いはファイルの読み書き、パスの操作はpathlibもあわせて参考になります。
仮想環境(venv)とは(なぜ必要か)
パッケージをシステム全体(グローバル)にインストールすると、複数のプロジェクトでバージョンが衝突したり、システムのPythonを汚したりします。仮想環境は、プロジェクトごとに専用の隔離された場所を用意し、そこにパッケージをインストールします。これにより、プロジェクトAとBで違うバージョンのライブラリを使っても、互いに干渉しません。実機でも、仮想環境に入れたパッケージがその環境の中だけに隔離され、システムのPythonからは見えないことを確認しています。
venvを作る・有効化する
仮想環境はpython -m venv フォルダ名で作ります。myenvや.venvという名前がよく使われます。作成後、有効化(activate)することで、その環境が使われるようになります。
# 仮想環境を作る(myenv というフォルダができる) python -m venv myenv # 有効化(PowerShell) myenv\Scripts\Activate.ps1 # 有効化(コマンドプロンプト) myenv\Scripts\activate.bat # 有効化すると、プロンプトの先頭に (myenv) と表示される
# 仮想環境を作る python3 -m venv myenv # 有効化 source myenv/bin/activate # 先頭に (myenv) が付けば有効化成功
実機でpython -m venv myenvを実行すると、myenvフォルダの中にScripts(Windows)またはbin(Mac/Linux)が作られ、その中にactivateやpipが入っていることを確認しました。有効化のコマンドはOSによって違います。Windowsはmyenv\Scripts\Activate.ps1(PowerShell)やmyenv\Scripts\activate.bat(コマンドプロンプト)、Mac/Linuxはsource myenv/bin/activateです。有効化に成功すると、プロンプトの先頭に(myenv)と表示されます。この表示が、今どの仮想環境にいるかの目印になります。なお、Windowsの PowerShell でActivate.ps1が実行ポリシーで止められる場合は、Set-ExecutionPolicy -Scope CurrentUser RemoteSignedを一度実行すると有効化できます。
pipでパッケージをインストール
仮想環境を有効化したら、pip install パッケージ名でパッケージをインストールします。インストール先は、その仮想環境の中だけです。
# パッケージをインストール(有効化した状態で) pip install requests # バージョンを指定してインストール pip install requests==2.31.0 # 複数まとめて pip install requests flask # アップグレード pip install --upgrade requests
もっとも多い失敗が、仮想環境を有効化せずにpip installしてしまうことです。有効化していない状態でインストールすると、パッケージがシステム全体(グローバル)に入ってしまい、仮想環境で隔離する意味がなくなります。実機でも、仮想環境にインストールしたrequestsはその環境の中(myenvフォルダ内)に置かれ、システムのPythonからは見えないことを確認しました。pip installの前に、プロンプトの先頭に(myenv)が付いているかを必ず確認してください。付いていなければ、まだ有効化されていません。どこにインストールされたか分からなくなったら、pip -Vでpipの場所を確認できます。仮想環境のpipなら、パスにmyenvが含まれます。
pip list / freeze で確認
インストール済みのパッケージはpip listで一覧できます。pip freezeは、バージョン付きで「再インストール用の形式」で出力します。
# インストール済みパッケージの一覧 pip list # バージョン付き(requirements.txt 用の形式) pip freeze # requests==2.34.2 # certifi==2026.6.17 # urllib3==2.7.0 ... のように出力される
実機でも、pip install requestsのあとにpip listすると、requestsだけでなく、それが依存するcertifi・urllib3なども一緒にインストールされていることを確認できました。pip freezeはrequests==2.34.2のようにバージョンを固定した形式で出力します。これが次のrequirements.txtの元になります。
requirements.txtで環境を再現する
pip freezeの出力をrequirements.txtというファイルに保存しておくと、別の環境やチームメンバーが同じパッケージ構成を一発で再現できます。これがPythonのパッケージ管理の基本です。
# 現在のパッケージ一覧をファイルに保存 pip freeze > requirements.txt # 別の環境で、同じパッケージをまとめてインストール pip install -r requirements.txt # → requirements.txt に書かれた全パッケージが、 # 同じバージョンでインストールされる
実機でも、pip freeze > requirements.txtでファイルに書き出すと、インストール済みパッケージがバージョン付きで5行ほど保存されました。新しい環境では、仮想環境を作って有効化したあと、pip install -r requirements.txtを実行するだけで、まったく同じパッケージ構成を再現できます。requirements.txtはテキストファイルなので、Gitで管理してチームで共有するのが一般的です。「自分の環境では動くのに、他の人の環境では動かない」というトラブルを防げます。
無効化・削除・.gitignore
仮想環境を抜けるにはdeactivateです。仮想環境のフォルダはそのまま削除でき、Gitには含めないのが基本です。
# 仮想環境を抜ける(有効化を解除) deactivate # 仮想環境を削除(フォルダごと消すだけ) # Windows: rmdir /s myenv # Mac/Linux: rm -rf myenv # .gitignore に追加して、Git管理から除外する # myenv/ (または .venv/)
deactivateで仮想環境を抜けると、プロンプトの(myenv)表示が消え、元のシステムのPythonに戻ります。仮想環境のフォルダは、削除したいときはフォルダごと消すだけです(中にすべてが入っているため)。重要なのは、仮想環境のフォルダをGitに含めないことです。サイズが大きく環境依存なので、.gitignoreにmyenv/や.venv/を追加して除外します。代わりにrequirements.txtを共有すれば、各自が同じ環境を再現できます。
主なコマンドまとめ
venvとpipの主なコマンドをまとめます。
| 操作 | コマンド |
|---|---|
| 作成 | python -m venv myenv |
| 有効化(Win) | myenv\Scripts\activate |
| 有効化(Mac/Linux) | source myenv/bin/activate |
| インストール | pip install パッケージ名 |
| 一覧の保存 | pip freeze > requirements.txt |
| 一覧から復元 | pip install -r requirements.txt |
| 無効化 | deactivate |
よくある失敗
有効化せずにpip installする
グローバルに入ってしまいます。先頭の(myenv)表示を確認してからインストールします。
有効化コマンドをOSで間違える
WindowsはScripts\activate、Mac/Linuxはsource bin/activateです。
仮想環境フォルダをGitに含める
サイズが大きく環境依存です。.gitignoreで除外し、requirements.txtを共有します。
requirements.txtを作らない
環境を再現できません。pip freeze > requirements.txtで保存しておきます。
PowerShellで有効化が止められる
実行ポリシーが原因です。Set-ExecutionPolicy -Scope CurrentUser RemoteSignedで解決します。
よくある質問
myenv\Scripts\Activate.ps1、コマンドプロンプトはmyenv\Scripts\activate.bat、Mac/Linuxはsource myenv/bin/activateです。有効化に成功すると、プロンプトの先頭に(myenv)と表示されます。pip installの前に、プロンプトの先頭に(myenv)が付いているか確認してください。pip -Vでpipの場所も確認できます。pip freeze > requirements.txtで保存し、別の環境でpip install -r requirements.txtを実行すると、同じパッケージ構成を再現できます。チームでの環境共有や、本番環境の構築に使います。.gitignoreにmyenv/や.venv/を追加して除外します。代わりにrequirements.txtを共有すれば、各自が同じ環境を再現できます。まとめ
- 仮想環境は
python -m venv myenvで作り、有効化して使います。 - 有効化はOSで違う(Win:
Scripts\activate/ Mac・Linux:source bin/activate)。 - パッケージは
pip install。必ず有効化してから((myenv)表示を確認)。 pip freeze > requirements.txtで保存、pip install -r requirements.txtで再現。- 仮想環境フォルダはGitに含めない(
.gitignoreで除外)。
仮想環境とpipは、Pythonで外部ライブラリを使うときの土台です。「有効化してからpip install」「requirements.txtで環境を共有」という2点を押さえれば、パッケージの衝突に悩まされることなく、クリーンな開発環境を保てます。新しいプロジェクトを始めるときは、まず仮想環境を作る習慣をつけましょう。

