5.

Python 仮想環境を Anaconda (conda) で構築|create / activate / 環境分離

編集
この記事の要点
  • Anacondaconda を使った Python 仮想環境構築
  • 作成: conda create -n env_name python=3.x
  • 有効化: conda activate env_name / 無効化: conda deactivate
  • 1 アプリ 1 環境を徹底するとライブラリ干渉を防げる
  • venv / poetry / pipenv と比較して科学計算系で強み

仮想環境を作る必要性

1 つのマシンで複数の Python プロジェクトを開発するとき、各プロジェクトで必要なライブラリのバージョンが衝突することがあります。仮想環境はプロジェクトごとに独立した Python + ライブラリ環境を持つ仕組みで、これらの干渉を防ぎます。

  • プロジェクト A: TensorFlow 2.10 + NumPy 1.23 が必要
  • プロジェクト B: TensorFlow 2.15 + NumPy 1.26 が必要
  • → 仮想環境を分ければ両方を同じ PC で扱える

conda コマンドの基本

# Python 3.11 で新環境を作成
conda create -n myproject python=3.11

# 環境一覧
conda env list
# または
conda info --envs

# 有効化(このシェル内で myproject 環境が有効)
conda activate myproject

# 確認: 現在の Python と pip
which python
python --version
pip --version

# パッケージインストール(環境内に閉じる)
conda install numpy pandas matplotlib
# または
pip install requests

# 無効化(base 環境に戻る)
conda deactivate

# 環境の削除
conda env remove -n myproject

環境の複製・エクスポート

# 現在の環境を YAML にエクスポート
conda env export > environment.yml

# 別マシンで復元
conda env create -f environment.yml

# pip 依存も含む
conda env export --no-builds > environment.yml

# pip 風の requirements.txt も併用可能
conda list --explicit > spec-file.txt
conda create --name newenv --file spec-file.txt

environment.yml の例

name: myproject
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.11
  - numpy=1.26
  - pandas
  - jupyter
  - pip
  - pip:
    - requests
    - black

初期環境 base の扱い

Anaconda インストール直後は base 環境が有効になっています。シェル起動時に自動有効化される設定をオフにすることもできます:

# base を自動有効化しない(起動高速化)
conda config --set auto_activate_base false

# 手動で base を有効化したいとき
conda activate base

# .bashrc / .zshrc に書かれる conda init 行を確認
cat ~/.bashrc | grep -A 10 "conda initialize"

conda vs pip の使い分け

condapip
パッケージ範囲Python + 非 Python (C ライブラリ等)Python のみ
依存解決厳密に解決(時間かかる)シンプル(時に矛盾発生)
科学計算★ MKL / CUDA 等を一緒に個別インストール
速度遅い(PyPI ほど豊富でない)速い
パッケージ数少ない圧倒的に多い
用途データサイエンス / 機械学習Web / 汎用

実用上は conda + pip 併用が多い。conda でベースのライブラリを入れ、PyPI 限定のものは pip で。

conda-forge チャンネル

標準のチャンネル (defaults) は商用配布で制限あり。conda-forge の方が最新版・パッケージ数が多い:

# conda-forge を優先チャンネルに
conda config --add channels conda-forge
conda config --set channel_priority strict

# 特定チャンネルから入れる
conda install -c conda-forge pytorch

mamba(高速 conda)

conda は依存解決が遅いことで有名。mamba は C++ で書かれた高速代替:

# mamba 自体は conda 経由で入れる
conda install -n base -c conda-forge mamba

# 以後 conda を mamba に置換可能
mamba install numpy pandas
mamba create -n myenv python=3.11
mamba env update -f environment.yml

# Miniforge のディストロは初めから mamba 付き

Anaconda vs Miniconda vs Miniforge

サイズ初期パッケージ推奨
Anaconda3GB+250+ パッケージ同梱初心者 / フル装備
Miniconda500MBconda + Python のみ軽量 / 個別管理
Miniforge500MBconda + Python + mamba(conda-forge デフォルト)★ 現代的・商用フリー

VS Code との連携

1. Python 拡張機能をインストール
2. Ctrl + Shift + P → "Python: Select Interpreter"
3. 一覧から conda 環境を選択
   例: "Python 3.11.0 ('myproject': conda)"
4. ターミナルを開くと自動で conda activate される
   ※ 自動アクティベートしない場合は VS Code 再起動

Jupyter Notebook で仮想環境を使う

# 各仮想環境ごとに ipykernel をインストールして登録
conda activate myproject
conda install ipykernel
python -m ipykernel install --user --name=myproject --display-name "Python (myproject)"

# Jupyter で Kernel メニュー → Change kernel → myproject を選択

商用利用ライセンス(重要)

  • Anaconda Distribution: 2020 年から商用利用は有償(200 人以上の組織で利用する場合)
  • Miniconda: 同上(Anaconda 社製)
  • Miniforge / mamba: BSD-3 ライセンス、商用利用も無料
  • 企業環境では Miniforge を選ぶ方が安全

よくあるハマりどころ

  • conda activate が効かない: conda init bash → シェル再起動
  • 環境がぶつかる: conda activate 前に conda deactivate を 2 〜 3 回
  • 依存解決が永遠に終わらない: mamba に切替 / strict ピン留め
  • pip install で base に入れてしまう: 必ず conda activate 後に pip 実行
  • 環境のパス長すぎる Windows: ホームディレクトリ直下に置く(C:\Users\xxx\anaconda3\envs\xxx)

関連

  • venv (標準ライブラリ): python -m venv .venv で軽量に作れる
  • poetry: 依存管理 + 仮想環境 + パッケージング一体化
  • pipenv: pip + venv の組み合わせを宣言的に
  • rye / uv: Rust 製の高速 Python 管理ツール(2024 注目)
編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. インストール方法(Windows)
  2. インストール方法(Linux)
  3. ANACONDA NAVIGATOR
  4. Anaconda Promptの起動(Windows)
  5. 仮想環境の構築(Anaconda経由)