2026/5/7 ・ python
Python使うときの仮想環境 venv
仮想環境ってなにさ
Pythonでなにかを作る時、だいたいはなんらかの外部ライブラリ(パッケージ)を使うことになる。だからインストールしなくちゃいけないのだけれども、なにも考えずインストールすると自分のPCの根幹に近い部分にインストールされるのです。
PCの根幹に近い部分にインストールされるとどこからでもそれを使う感じになるんですな。
たとえばこういう状況が起きます:
プロジェクト A → requests 2.28 が必要
プロジェクト B → requests 2.20 が必要(古いバージョン)
基本的には同じ PC で両方を動かそうとすると、どちらかのバージョンしか入れられないんですわ。
仮想環境ってのはこの問題を解決する仕組みです。プロジェクトごとに独立した Python 実行環境(インストール先)を作り、ライブラリのバージョンを分離して管理できるようになります。
プロジェクト A 用のライブラリのセット, プロジェクト B 用のライブラリのセット みたいな感じで分けて扱えるんですわ。
プロジェクト A の仮想環境 → requests 2.28
プロジェクト B の仮想環境 → requests 2.20
PC 全体の環境を汚さず、プロジェクトごとに必要なものだけを入れられるようになります。
消すときもプロジェクト単位で全部消せるんで、PCに無駄に累積してかないのです。
手段の候補
Python の仮想環境を作る手段はいくつかあるようです。
正直 venv と uv くらいしかちゃんと使ってないかも。poetryはちょっと前に1回使いましたかね。conda はなんかよくわかんなかった。
| ツール | 特徴 | こんな人向け |
|---|---|---|
| venv | Python 標準搭載。インストール不要 | とにかく手軽に始めたい |
| uv | 爆速・多機能。venv + pip + pyenv を一本化 | これから本格的に使いたい |
| poetry | 依存管理・パッケージ公開まで対応 | 依存管理も仮想環境も一本化したい |
| conda | Python 以外の C ライブラリも管理できる | データサイエンス |
| pyenv | Python 自体のバージョンを切り替える | 複数バージョンを使い分けたい |
今から始めるなら
- 手軽に試したい・学習用 → venv
- 本格的な開発 → uv
venv は Python に標準搭載されているため、インストールなしですぐ使えます。手っ取り早いです。uv はだいたいなんでもできるんじゃないですかね。ちゃんとチーム開発するなら uv がいいんじゃないかなと思います。
venv の使い方
仮想環境を作る
プロジェクトのルートディレクトリで以下のコマンドを打ってください。
python -m venv .venv
.venvっていう空のディレクトリが作成されます。
コマンド最後の .venv が仮想環境の名前(ディレクトリ名)。どんな名前でもいいんだろうけど慣習的に .venv が使われてるっぽいです。むしろこれしか見たことないかもしれん。
ここに色々このプロジェクト用のライブラリとかの情報が入ってくイメージですな。
仮想環境を有効化する
# Mac / Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate
有効化するとターミナルのプロンプトに (.venv) が表示されると思います。この状態でインストールしたパッケージはこの仮想環境にのみ入っていきます。
(.venv) $ pip install requests
仮想環境を無効化する
deactivate
依存パッケージを記録・復元する
チームで共有したり、別の環境で再現したいときは requirements.txt を使います。
# 現在インストール済みのパッケージを書き出す
pip freeze > requirements.txt
# requirements.txt からインストールする
pip install -r requirements.txt
.gitignore に追加する
仮想環境のディレクトリはリポジトリに含めません。
requirements.txt だけで環境構築に必要な情報は足りるのでね。
他の人とか他のPCで同じ環境を作るときは .venv をつくって有効化してから上記の pip install をすればいいのです。
.venv/
よくある流れ
# 1. プロジェクトディレクトリに移動
cd my-project
# 2. 仮想環境を作成
python -m venv .venv
# 3. 有効化
source .venv/bin/activate
# 4. パッケージをインストール
pip install requests
# 5. 依存を記録
pip freeze > requirements.txt
# 6. 作業が終わったら無効化
deactivate
あとがき
転職したての時は仮想環境の概念すらよくわかってなかったのです。なので記事として残しておきます。
conda つかったとき pip とごちゃごちゃになって触るの辞めた記憶ありますな...
もう1回触ってみようかな。


