DevToolBox無料
ブログ

Python仮想環境ガイド:venv、conda、pipenv、poetry

10分by DevToolBox

仮想環境はPython依存関係管理の礎です。このガイドでは4つの主要ツール、venvcondapipenvPoetryを解説します。

仮想環境が重要な理由

各Pythonプロジェクトは独自の依存関係と特定バージョン要件を持ちます。仮想環境はプロジェクトごとに隔離されたPythonインストールを作成して解決します。

venv: 組み込み標準ライブラリ

venvはPython 3.3+に付属する最もシンプルなオプションです。追加インストール不要。

# venv — Built-in (Python 3.3+)

# Create a virtual environment
python -m venv .venv

# Activate (macOS/Linux)
source .venv/bin/activate

# Activate (Windows)
.venv\Scripts\activate

# Install packages
pip install django requests

# Save dependencies
pip freeze > requirements.txt

# Install from requirements.txt
pip install -r requirements.txt

# Deactivate
deactivate

# Delete the environment
rm -rf .venv

# Recommended: add .venv to .gitignore
echo ".venv" >> .gitignore

Poetry: モダンな依存関係管理

Poetryは最もモダンで機能豊富なPython依存関係マネージャーです。

# Poetry — Modern Dependency Management (Recommended 2026)

# Install Poetry
curl -sSL https://install.python-poetry.org | python3 -

# Create a new project
poetry new my-project
cd my-project

# Add dependencies
poetry add django
poetry add --group dev pytest black ruff

# Install all dependencies (from poetry.lock)
poetry install

# Run commands in the virtual environment
poetry run python manage.py runserver
poetry run pytest

# Open a shell in the virtual environment
poetry shell

# Update dependencies
poetry update

# Export to requirements.txt (for compatibility)
poetry export -f requirements.txt --output requirements.txt

# Build and publish a package
poetry build
poetry publish

# Show dependency tree
poetry show --tree

# pyproject.toml (auto-generated)
# [tool.poetry]
# name = "my-project"
# version = "0.1.0"
# description = ""
# [tool.poetry.dependencies]
# python = "^>=3.11"
# django = "^>=5.0"
# [tool.poetry.group.dev.dependencies]
# pytest = "^>=8.0"

conda: データサイエンスの強力ツール

condaはPython以外の依存関係もインストールできる完全なパッケージマネージャーです。

# conda — Data Science / ML (Anaconda/Miniconda)

# Install Miniconda (minimal)
# https://docs.conda.io/projects/miniconda/

# Create environment with specific Python version
conda create -n myproject python=3.11

# Activate environment
conda activate myproject

# Install packages (conda packages first)
conda install numpy pandas scikit-learn matplotlib

# Install packages not in conda
pip install some-pytorch-extension

# Export environment
conda env export > environment.yml

# Create from environment.yml
conda env create -f environment.yml

# List environments
conda env list

# Deactivate
conda deactivate

# Remove environment
conda env remove -n myproject

# Update conda
conda update conda

# environment.yml example:
# name: myproject
# channels:
#   - conda-forge
#   - defaults
# dependencies:
#   - python=3.11
#   - numpy=1.26
#   - pandas=2.1
#   - pip:
#     - custom-package==1.0

ツール比較

適切なツールの選択はユースケースによります。

Tool        Installation  Lockfile  Non-Python  Build/Publish  Best For
------------------------------------------------------------------------
venv        Built-in      No        No          No             Simple scripts, learning
pipenv      pip install   Yes       No          No             Legacy projects
Poetry      curl install  Yes       No          Yes            General apps, libraries
conda       Installer     Yes       Yes         No             Data science, ML, AI
uv          cargo/pip     Yes       No          Yes            Fast pip replacement (2026)

よくある質問

2026年にはどの仮想環境ツールを使うべき?

一般的なPython開発やWebアプリにはPoetryを使用してください。データサイエンスとMLにはcondaを使用してください。

pipとcondaの違いは?

pipはPyPIからのみPythonパッケージをインストールします。condaは非Pythonパッケージもインストールできます。

conda環境内でpipを使えますか?

はい、ただし注意が必要です。pipとcondaを混在させると競合が発生することがあります。

環境を他の開発者と共有するには?

Poetryの場合:pyproject.tomlとpoetry.lockをコミット。pipの場合:requirements.txt。condaの場合:environment.yml。

関連ツール

𝕏 Twitterin LinkedIn
この記事は役に立ちましたか?

最新情報を受け取る

毎週の開発ヒントと新ツール情報。

スパムなし。いつでも解除可能。

Try These Related Tools

{ }JSON Formatter

Related Articles

Python型ヒント完全ガイド:mypy、Protocol、ランタイムバリデーション

Python型ヒント完全マスター2026:mypy静的検査、Protocol定義、Pydanticランタイムバリデーション。

FastAPI チュートリアル:2026年にPythonでREST APIを構築

完全なFastAPIチュートリアル:セットアップ、ルーティング、バリデーション、認証、DB統合。

Pythonデコレータ完全解説:基礎から応用まで

関数デコレータ、クラスデコレータ、引数付きデコレータ、functools.wrapsでPythonデコレータをマスター。