開発環境

Python仮想環境の3つ(venv / pyenv / pyenv-virtualenv) の違いと使い分けについて

✅ はじめに

Pythonのプロジェクト開発では、仮想環境を使うことがとても大切です。
なぜなら、ライブラリのバージョン管理や、他プロジェクトとの干渉を防ぐためです。

本記事では、以下の3つの方法について、初心者でも分かるように丁寧に比較・解説します。

  • python -m venv(標準機能)
  • pyenv(Pythonバージョン管理)
  • pyenv + pyenv-virtualenv(最強コンビ)

✅ 各方法の特徴を比較

機能 / ツールvenvpyenvpyenv + virtualenv
Pythonバージョン管理❌(外部依存)
仮想環境作成❌(単体では不可)
バージョンの切り替え
.python-version 対応
VSCodeとの連携◎(簡単)○(設定必要)○(設定必要)

✅ 方法①:venv(Python標準の仮想環境)

特徴

  • Pythonに標準搭載されている仮想環境ツール
  • 追加インストール不要、すぐ使える

使い方(例)

# 仮想環境を作成
python3 -m venv .venv

# 仮想環境をアクティベート
source .venv/bin/activate

# パッケージをインストール
pip install requests

メリット

  • シンプルで簡単
  • VSCodeの自動検出にも対応

デメリット

  • Pythonのバージョンを切り替える機能はない
  • OSやHomebrewに依存しがち

✅ 方法②:pyenv(Pythonバージョン管理ツール)

特徴

  • 複数のPythonバージョンを簡単に管理・切り替えできる
  • システムのPythonに依存せず安全

インストール方法(macOS)

brew install pyenv

.zshrc に追記:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

使い方(例)

pyenv install 3.12.3
pyenv global 3.12.3
pyenv local 3.12.3

メリット

  • バージョンごとの環境を柔軟に切り替え可能
  • .python-version でプロジェクトに紐づけ可能

デメリット

  • 仮想環境は別途 venv などを使う必要あり

✅ 方法③:pyenv + pyenv-virtualenv(最も強力な構成)

特徴

  • Pythonバージョンと仮想環境をセットで管理できる
  • pyenv の機能拡張として使える

インストール方法

brew install pyenv pyenv-virtualenv

.zshrc に追加:

eval "$(pyenv virtualenv-init -)"

使い方(例)

pyenv install 3.12.3
pyenv virtualenv 3.12.3 myenv
pyenv activate myenv
pyenv local myenv

メリット

  • 環境管理が自動化されて快適
  • 複数プロジェクトを安全に分離できる
  • .python-version により自動切り替え可能

デメリット

  • 初期設定がやや複雑
  • .venv フォルダがプロジェクト内にできない(VSCode設定で対応可能)

✅ まとめ:どれを選ぶべき?

あなたの状況おすすめ
はじめて仮想環境を使うvenv
複数のPythonバージョンを切り替えたいpyenv
完全に管理された環境を使いたいpyenv + pyenv-virtualenv

✅ おわりに

Pythonの仮想環境は、開発の基盤です。
あなたの開発スタイルに合った方法を選んで、快適なPythonライフを始めましょう!


ABOUT ME
Wan(わん)
AI開発を趣味として楽しんでいるエンジニアです。画像認識や予測分析、生成AIなど幅広い分野に関心があり、日々さまざまな技術に触れながら試行錯誤しています。このブログ「DeepLogics」では、自分が学んだこと・作ったもの・気づいたことを、開発の記録として発信していきます。 実験的なプロジェクトから実務に応用できそうな技術まで、実際に手を動かして体得した情報をシェアしていきます!