1.

Python 開発環境構築の決定版 — pyenv / venv / poetry / Anaconda の使い分け

編集
この記事の要点
  • Python のインストールは 公式インストーラー (python.org) が王道。 macOS/Linux は pyenv で複数バージョン管理が便利
  • プロジェクト毎の隔離環境python -m venv env が標準。 サードパーティ不要
  • パッケージ管理: pip + requirements.txt がシンプル。 モダンには poetry / pipenv + pyproject.toml
  • データサイエンス用途は Anaconda / Miniconda。 ただし 2020 年以降は商用利用ライセンス注意 → Miniforge が無料代替
  • IDE は VS Code (Python 拡張) か PyCharm。 インタプリタを venv のものに切り替えるのがハマりポイント

Python 本体のインストール

OS推奨方式備考
Windows公式インストーラー (python.org) または Microsoft Store「Add python.exe to PATH」必ずチェック
macOSpyenv 経由、または公式インストーラーシステム Python (2.7/3.x) は使わない
Linuxディストリ標準 + pyenvシステム Python は OS が使うので別途
データサイエンスMiniforge / AnacondaNumPy / SciPy のビルド済バイナリ取得

Windows 公式インストーラー

# https://www.python.org/downloads/ から DL
# python-3.12.x-amd64.exe を実行

# インストール時のチェック:
#   ☑ Add python.exe to PATH      ← 必須
#   ☑ Install pip
#   ☑ tcl/tk and IDLE
#   ☑ Python test suite
#   ☑ py launcher (for all users)

# 確認
python --version
pip --version
where python

macOS / Linux で pyenv

# macOS (Homebrew)
brew install pyenv

# Linux
curl https://pyenv.run | bash

# .bashrc / .zshrc に追加
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

# 利用可能バージョン一覧
pyenv install --list | grep " 3\."

# インストール
pyenv install 3.12.1
pyenv install 3.11.7

# グローバル設定
pyenv global 3.12.1

# プロジェクト毎の設定(.python-version が作られる)
cd myproject
pyenv local 3.11.7

仮想環境: venv (標準)

プロジェクト毎にパッケージを隔離するのが Python の基本作法です。 Python 3.3+ に venv が標準同梱されているため、サードパーティ不要。

# 仮想環境を作成(フォルダ名 env / venv / .venv が慣習)
python -m venv env

# 有効化 (Linux / macOS)
source env/bin/activate

# 有効化 (Windows PowerShell)
.\env\Scripts\Activate.ps1

# 有効化 (Windows cmd)
env\Scripts\activate.bat

# 確認(プロンプトに (env) が付く)
(env) $ which python
/path/to/myproject/env/bin/python

# パッケージインストール
(env) $ pip install requests django

# 抜ける
(env) $ deactivate

requirements.txt と pyproject.toml

方式ファイルメリットデメリット
pip + requirements.txtrequirements.txtシンプル、標準依存解決が弱い、ロックファイル無し
pipenvPipfile / Pipfile.lockロックファイル、開発依存分離開発が緩慢
poetrypyproject.toml / poetry.lockモダン、ビルド/公開も統合独自仕様
condaenvironment.yml非 Python パッケージも管理専用 channel 依存
uv (新興)pyproject.tomlRust 製で超高速2024 年登場、まだ若い

requirements.txt の典型

# requirements.txt
Django==4.2.7
djangorestframework==3.14.0
psycopg2-binary>=2.9
requests~=2.31.0     # 2.31.x まで許容
# == 完全一致 / >= 以上 / ~= 互換アップデート
# 現在の環境を保存
pip freeze > requirements.txt

# 別環境で再現
pip install -r requirements.txt

# 開発用依存を分けるなら
# requirements.txt        本番
# requirements-dev.txt    開発(pytest, black 等)
pip install -r requirements-dev.txt

poetry の典型

# インストール
curl -sSL https://install.python-poetry.org | python3 -

# プロジェクト初期化
poetry new myproject
cd myproject

# 依存追加(pyproject.toml に自動記録)
poetry add django
poetry add --group dev pytest black

# 仮想環境で実行
poetry run python manage.py runserver
poetry shell                    # シェル起動

# ロックファイルから再現
poetry install

Anaconda / Miniconda / Miniforge

NumPy / SciPy / pandas / scikit-learn 等を一括導入したい場合に便利。 ただし 2020 年に商用ライセンス変更があり、 200 名超え組織での Anaconda 商用利用は有償化されました。 個人/学術は引き続き無料。

製品概要商用利用
Anaconda Distributionフル、 GUI Navigator 付200 名超は有償
Minicondaconda + Python のみ最小同上(defaults チャネル使用時)
Miniforgeconda-forge ベースの軽量版完全無料
MambaforgeMiniforge + 高速ソルバー mamba完全無料
# 環境作成
conda create -n myenv python=3.11

# 有効化
conda activate myenv

# パッケージ追加
conda install numpy pandas scikit-learn
conda install -c conda-forge jupyterlab

# pip 併用も可能(基本は conda 優先)
pip install some-pip-only-pkg

# 環境エクスポート
conda env export > environment.yml

# 再現
conda env create -f environment.yml

IDE 設定 (VS Code / PyCharm)

VS Code

  1. 拡張機能「Python」(Microsoft 製)をインストール
  2. Ctrl + Shift + PPython: Select Interpreter
  3. venv の python.exe を選択(例: ./env/bin/python
  4. .vscode/settings.json に保存される
  5. linter は ruff、 formatter は black 推奨
// .vscode/settings.json
{
  "python.defaultInterpreterPath": "./env/bin/python",
  "python.analysis.typeCheckingMode": "basic",
  "[python]": {
    "editor.defaultFormatter": "ms-python.black-formatter",
    "editor.formatOnSave": true
  },
  "python.linting.enabled": true
}

PyCharm

  • 新規プロジェクト作成時に 「New environment using: Virtualenv」選択
  • 既存プロジェクトは Settings → Project → Python Interpreter → Add Interpreter
  • Community 版でも venv / poetry / conda に対応

使い分けフローチャート

  • Web 開発・自動化 → 公式 Python + venv + pip + requirements.txt(シンプル)
  • OSS ライブラリ公開 → poetry + pyproject.toml(ビルド・公開まで一気通貫)
  • データサイエンス・機械学習 → Miniforge + conda(C 拡張ビルド済)
  • 速さ重視・モダン志向 → uv (Rust 製、 pip の 10〜100 倍速)
  • 複数 Python バージョン切替 → pyenv + venv 併用

FAQ

Q: venv と virtualenv の違い?
A: virtualenv はサードパーティ製で歴史が古い。 Python 3.3+ で標準化したのが venv。 機能はほぼ同じ。 venv 推奨。

Q: Anaconda の代替は何?
A: 商用ライセンス回避なら Miniforge。 個人利用なら Anaconda のままで OK。

Q: requirements.txt と pyproject.toml は併用できる?
A: 可能。 poetry は poetry export -f requirements.txt で吐けます。 docker ビルド時に便利。

編集
Post Share
子ページ
  1. Python本体・ライブラリのインストール
  2. Anaconda
  3. 統合開発環境の導入
  4. 仮想環境の構築(Mac)
  5. 仮想環境の構築(WIndows)
同階層のページ
  1. 環境構築
  2. 文法
  3. フレームワーク
  4. ライブラリ
  5. バージョンの確認
  6. エラー一覧
  7. Webスクレイピング
  8. Excelの読み込み/書き込み操作(openpyxl編)
  9. Excelのセルの値を読み込む方法(xlrd編)
  10. ローカルで独立して動くPythonプログラムとパッケージの事前インストール方法
  11. プログラム実行時のパスを取得