1. はじめに
Pythonで開発を進めていると、ライブラリのバージョン違いや依存関係の衝突によって「動いていたコードが急に動かなくなる」「他の環境で再現できない」といった問題が起こりがちです。
こうしたトラブルを防ぐために、**仮想環境(venv)**を使うことで、プロジェクトごとにライブラリのバージョンや依存関係を分離・管理できます。
ユースケース
- システム全体で使っているPython環境に影響を与えないようにモジュールの追加・入れ替えをしたい
- 異なるバージョンのライブラリを使いわけたい
この記事では、WSL2環境でPython仮想環境を導入し、基本的な使い方を整理します。
2. 前提条件
この手順は、WSL2上でpythonを使っている環境を前提としています。
- WSL2(Ubuntu22.04 LTS)
- python3がインストールされている
- pipが使える状態である
これらがすべて確認できたら、仮想環境の作成に進めます。
3. 仮想環境(venv)の作成手順
まずは、プロジェクト用のディレクトリを作成し、その中に仮想環境を構築します。
# プロジェクトディレクトリを作成して移動
mkdir my_project
cd my_project
# 仮想環境を作成
python3 -m venv .venv
- 仮想環境のディレクトリ名は、.
venv以外でも、好きな名前をつけても大丈夫 -
.venv/ディレクトリが作成されます。ここには、仮想環境に必要なPython実行ファイルやライブラリが格納されます
エラーが出たときは、venvが使えないときの対処を参照してみてください
**
ディレクトリ構成
my_project/
├── .venv/ ← 仮想環境
├── main.py ← プロジェクトのコード
├── requirements.txt
4. 仮想環境の有効化・無効化
作成した仮想環境を使うには、まず有効化(activate)します。
# 仮想環境の有効化
source .venv/bin/activate
有効化されると、プロンプトの先頭に (.venv) のような表示が付きます。これが仮想環境内であることの目印です
仮想環境を終了したいときは、以下のコマンドで無効化(deactivate)します。
# 仮想環境の無効化
deactivate
有効化されているか確認する方法
仮想環境が有効になっているかは、Pythonの実行パスを確認するとわかります。
仮想環境が有効になっていれば、.venv/bin/pythonのようなパスになります。
which python
出力例(仮想環境が有効な場合):
/home/username/my_project/.venv/bin/python
出力例(グローバル環境の場合):
/usr/bin/python
5. パッケージのインストールと管理
仮想環境を有効化した状態で、必要なライブラリを pip でインストールします。
# 仮想環境を有効化
source .venv/bin/activate
# ライブラリをインストール(例:psycopg2, pytest)
pip install psycopg2 pytest
インストール済みライブラリの確認
pip list
環境の再現性を保つために requirements.txt を作成
pip freeze > requirements.txt
このファイルを共有すれば、他の環境でも同じライブラリ構成を再現できます
requirements.txt から環境を復元する方法
pip install -r requirements.txt
ライブラリのアンインストール
pip uninstall psycopg2
補足
venvが使えないときの対処
対処方法:python3-venv をインストール
sudo apt update
sudo apt install python3-venv
その後、再度仮想環境を作成してください:
python3 -m venv .venv
gitignore に .venv/ を追加する理由
仮想環境 .venv/ は、プロジェクトごとにローカルで構築される一時的な環境です。これを Git 管理対象に含める必要はありません。
以下の理由から、.gitignore に .venv/ を追加するのが一般的です。
- 理由1:不要なファイルのコミットを防ぐ
.venv/には数千のファイルが含まれるため、Gitリポジトリが肥大化し、管理が煩雑になる - 理由2:環境は
requirements.txtで再現可能
仮想環境そのものを共有するのではなく、requirements.txtを使って他の環境で再構築するのが基本 - 理由3: 環境依存の差異を避ける
仮想環境にはOSやPythonバージョンに依存するバイナリが含まれるため、他の環境で動作しない可能性がある
.gitignore の記述例
.venv/
pycache/
*.pyc
この設定により、仮想環境をローカルで自由に使いつつ、Gitリポジトリは軽量で再現性の高い状態を保てます。
VSCodeで仮想環境を認識させる方法(Python interpreter設定)
仮想環境 .venv/ を作成しただけでは、VSCodeが自動で認識しない場合があります。以下の手順で、仮想環境を明示的に選択することで、VSCode上でも仮想環境を有効化できます。
VSCodeでプロジェクトフォルダを開く
```bash
code .
WSL2上で code . を実行すると、現在のディレクトリがVSCodeで開かれます。
Python interpreter を選択する
- VSCode画面左下の「Pythonバージョン(例:Python 3.10.12)」をクリック
※ 表示されていない場合は、Ctrl + Shift + P→ 「Python: Select Interpreter」を実行 -
.venv/bin/pythonを選択
例:Python 3.10.12(.venv)
ターミナルを新規で開くとプロンプトの前に(.venv)の表示が出るようになります
settings.json に明示的に指定する方法(任意)
.vscode/settings.json に以下を記述することで、仮想環境を固定できます。
{
"python.pythonPath": ".venv/bin/python"
}
6. おわりに
Pythonの仮想環境(venv)を使うことで、ライブラリの依存関係やバージョンの衝突を防ぎ、再現性の高い開発環境を構築できます。
WSL2環境でも、仮想環境の作成・有効化・パッケージ管理はシンプルな手順で実現できるため、日々の開発やチーム共有にも役立ちます。