メインコンテンツへスキップ
見出し画像

[AI基礎解説] 仮想環境ってなんだ? 〜conda編〜

    GeneLab

    前回のあらすじ:仮想環境って何だっけ?

    「Pythonってなんだ?」の記事で、仮想環境の存在をチラ見せした。覚えてるか?

    簡単におさらいすると:

    • プロジェクトAはNumPy 1.20が必要

    • プロジェクトBはNumPy 1.25が必要

    • 同じマシンで両方動かしたい

    こういう「バージョン地獄」を解決するのが仮想環境だ。

    前回はPython標準のvenvを紹介したが、今回はcondaという別の選択肢を見ていく。

    condaって何者?美味しいの?

    condaは、クロスプラットフォーム、言語非依存のバイナリパッケージマネージャーだ。簡単に言うと:

    • パッケージマネージャー:ライブラリのインストール・管理ができる(pipみたいなもん)

    • 環境マネージャー:仮想環境を作成・管理できる(venvみたいなもん)

    • 言語非依存:Python以外(R、C++のライブラリとか)も管理できる

    つまり、pipとvenvを合体させて、さらに強化したやつだ。

    venv vs conda:どっち使えばいい?

    項目 venv conda インストール Python標準搭載 別途インストール必要 対応言語 Pythonのみ Python、R、C++など パッケージ管理 pip conda(pipも使える) 依存関係解決 弱い 強い(賢い) ディスク容量 軽い 重い(数GB食う) 科学計算ライブラリ 別途インストール 最初から揃ってる

    結論:

    • ライトなプロジェクト → venv

    • AI・データサイエンス → conda

    • 複雑な依存関係がある → conda

    • ディスク容量が厳しい → venv

    Anaconda vs Miniconda vs Miniforge:三つ巴の戦い

    condaをインストールする方法は3つある。どれ選ぶか迷うよな。

    Anaconda(フルセット)

    Anaconda Distributionは300以上のパッケージを自動でインストールする。

    特徴:

    • GUI(Anaconda Navigator)付き

    • データサイエンス系ライブラリ全部入り

    • インストール容量:約5GB

    • NumPy、Pandas、Matplotlib、Jupyterなど全部最初から使える

    おすすめ対象:

    • GUI好き

    • とりあえず全部入りが欲しい初心者

    • ディスク容量に余裕がある人

    デメリット:

    • 商用利用は有料ライセンスが必要な場合がある(個人・教育・従業員200人未満の企業は無料)

    • 重い

    • 使わないパッケージまで入ってる

    Miniconda(ミニマル版)

    Minicondaは、conda、Python、それらの依存関係、および少数の他のパッケージのみを含む軽量版。

    特徴:

    • 必要最小限だけインストール

    • インストール容量:約500MB

    • 自分で好きなパッケージを追加していくスタイル

    おすすめ対象:

    • 何が必要か把握してる中級者以上

    • ディスク容量を節約したい

    • サーバー環境で使いたい

    デメリット:

    • Anacondaと同じ、商用利用の制約がある可能性

    Miniforge(コミュニティ版)

    Miniforgeは、conda-forgeコミュニティによって維持されているインストーラーで、conda-forgeチャンネルを使うように事前設定されている。

    特徴:

    • Minicondaと似てるが、conda-forgeチャンネルがデフォルト

    • 商用利用の制約なし(完全オープンソース)

    • Apple Siliconネイティブ対応

    おすすめ対象:

    • 商用プロジェクト

    • ライセンス気にしたくない人

    • M1/M2 Macユーザー

    結論:どれ選べばいい?

    • 初心者・個人利用 → Anaconda

    • 中級者・軽量が好き → Miniconda

    • 商用・ライセンス心配 → Miniforge

    俺のおすすめはMiniconda。必要なものだけ入れる方が健全だし、後から追加するのも簡単だからな。

    インストール手順:OS別に解説

    【Windows編】

    ステップ1:インストーラーをダウンロード

    Minicondaの例で説明する。

    https://docs.conda.io/en/latest/miniconda.html にアクセス。

    「Miniconda3 Windows 64-bit」をダウンロード。

    ステップ2:インストーラー実行

    ダウンロードした.exeファイルをダブルクリック。

    重要な設定:

    • 「Just Me」を選択(推奨)

    • インストール先はデフォルトでOK

    • 「Add Miniconda3 to my PATH environment variable」はチェックしない(公式非推奨)

    • 「Register Miniconda3 as my default Python」はチェック入れてOK

    ステップ3:動作確認

    スタートメニューから「Anaconda Prompt (miniconda3)」を起動。

    conda --version
    

    バージョンが表示されたら成功。

    【Mac編】Homebrew使わない方法

    ステップ1:インストーラーをダウンロード

    https://docs.conda.io/en/latest/miniconda.html にアクセス。

    Intelチップ: Miniconda3 macOS Intel x86 64-bit pkg M1/M2チップ: Miniconda3 macOS Apple M1 ARM 64-bit pkg

    ステップ2:インストーラー実行

    ダウンロードした.pkgファイルをダブルクリック。 指示に従ってインストール。

    ステップ3:シェル初期化(重要)

    ターミナルを開いて:

    # conda初期化
    /Users/あなたのユーザー名/miniconda3/bin/conda init zsh
    

    bashを使ってる人は:

    /Users/あなたのユーザー名/miniconda3/bin/conda init bash
    

    ターミナルを再起動。

    ステップ4:動作確認

    conda --version
    

    プロンプトの先頭に(base)って表示されてたら完璧。

    【Mac編】Homebrewを使う方法(簡単)

    別記事「Homebrewってなんだ?」でHomebrew入れた人向け。

    brew install --cask miniconda
    

    一行で終了。神。

    初期化は同じくやる:

    conda init zsh  # または bash
    

    ターミナル再起動して完了。

    conda環境の基本操作:これだけ覚えとけ

    環境作成

    # 基本形
    conda create -n myenv
    
    # Python指定して作成
    conda create -n myenv python=3.11
    
    # パッケージも一緒にインストール
    conda create -n ml-project python=3.11 numpy pandas matplotlib
    

    環境にパッケージを追加しながら作成するには、環境名の後にそれらを指定する。

    環境一覧表示

    conda env list
    

    または

    conda info --envs
    

    アクティブな環境はアスタリスク(*)が付いてるやつ。

    出力例:

    # conda environments:
    #
    base                  *  /Users/username/miniconda3
    ml-project               /Users/username/miniconda3/envs/ml-project
    

    環境の有効化

    conda activate ml-project
    

    プロンプトが(ml-project)になったら成功。

    環境の無効化

    conda deactivate
    

    (base)に戻る。

    環境の削除

    conda env remove -n ml-project
    

    もう使わない環境は消そう。ディスク容量の節約。

    パッケージ管理:condaとpipの二刀流

    パッケージ検索

    # conda公式リポジトリで検索
    conda search numpy
    
    # conda-forgeで検索
    conda search -c conda-forge numpy
    

    パッケージインストール

    # 現在の環境にインストール
    conda install numpy
    
    # バージョン指定
    conda install numpy=1.24
    
    # 複数まとめて
    conda install numpy pandas matplotlib
    
    # conda-forgeから
    conda install -c conda-forge scikit-learn
    

    以前に作成した環境にパッケージをインストールするには、環境を有効化するか、コマンドラインで環境名を指定する。

    # 方法1:環境を有効化してから
    conda activate myenv
    conda install numpy
    
    # 方法2:環境名を指定
    conda install -n myenv numpy
    

    パッケージアップデート

    # 特定パッケージ
    conda update numpy
    
    # 全パッケージ
    conda update --all
    

    パッケージアンインストール

    conda uninstall numpy
    

    インストール済みパッケージ一覧

    conda list
    

    pipも使える

    condaで見つからないパッケージはpipで入れればOK。

    conda activate myenv
    pip install some-package
    

    注意:condaとpipを混ぜると依存関係が壊れることがある。 できるだけcondaで統一しろ。どうしても必要な時だけpip。

    チャンネル(Channel):パッケージの供給源

    チャンネルとは、パッケージが保存されている場所(自分のコンピューターまたはインターネット上)。

    主要チャンネル

    1. defaults(デフォルト):Anaconda公式

    2. conda-forge:コミュニティ版。パッケージが最新で豊富

    3. bioconda:バイオインフォマティクス系

    4. pytorch:PyTorch専用

    チャンネル指定してインストール

    # 一時的に指定
    conda install -c conda-forge tensorflow
    
    # デフォルトチャンネルに追加
    conda config --add channels conda-forge
    conda config --set channel_priority strict
    

    conda-forgeを追加しておくと、パッケージが見つかりやすくなる。おすすめ。

    実践:AI・機械学習プロジェクトを始める

    シナリオ:画像分類プロジェクト

    # 1. 環境作成
    conda create -n image-classifier python=3.11
    
    # 2. 環境有効化
    conda activate image-classifier
    
    # 3. 必要なパッケージインストール
    conda install numpy pandas matplotlib scikit-learn jupyter
    
    # 4. PyTorchインストール(公式チャンネルから)
    conda install pytorch torchvision -c pytorch
    
    # 5. その他(condaにないもの)
    pip install pillow tqdm
    

    環境をファイルに保存(再現性)

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

    environment.ymlの中身(例):

    name: image-classifier
    channels:
      - pytorch
      - defaults
    dependencies:
      - python=3.11
      - numpy
      - pandas
      - matplotlib
      - scikit-learn
      - jupyter
      - pytorch
      - torchvision
      - pip:
        - pillow
        - tqdm
    

    ファイルから環境を復元

    # 別のマシンやチームメンバーが環境を再現
    conda env create -f environment.yml
    

    これでチーム全員が同じ環境で作業できる。神。

    よく使うコマンド一覧:チートシート

    # 環境管理
    conda create -n myenv python=3.11    # 環境作成
    conda activate myenv                  # 環境有効化
    conda deactivate                      # 環境無効化
    conda env list                        # 環境一覧
    conda env remove -n myenv             # 環境削除
    conda env export > env.yml            # 環境エクスポート
    conda env create -f env.yml           # 環境インポート
    
    # パッケージ管理
    conda install numpy                   # インストール
    conda install numpy=1.24              # バージョン指定
    conda install -c conda-forge pkg      # チャンネル指定
    conda update numpy                    # アップデート
    conda update --all                    # 全パッケージアップデート
    conda uninstall numpy                 # アンインストール
    conda list                            # インストール済み一覧
    conda search numpy                    # パッケージ検索
    
    # conda自身の管理
    conda --version                       # バージョン確認
    conda update conda                    # condaアップデート
    conda clean --all                     # キャッシュクリア(容量節約)
    

    つまずきやすいポイントと対策

    ケース1:「conda: command not found」

    原因: PATHが通ってない、または初期化されてない。

    対策(Mac/Linux):

    # 初期化
    ~/miniconda3/bin/conda init zsh  # または bash
    

    ターミナル再起動。

    対策(Windows): スタートメニューから「Anaconda Prompt」を使え。

    ケース2:baseが自動で有効化されるのウザい

    デフォルトでターミナル開くたびに(base)が有効化される。これが嫌な人:

    conda config --set auto_activate_base false
    

    ケース3:パッケージのインストールが遅い

    conda

    の依存関係解決が遅いことがある。特に大きい環境で。

    対策1: mamba使え(condaの高速版)

    conda install -c conda-forge mamba
    mamba install numpy  # condaの代わりにmamba
    

    対策2: パッケージをまとめて指定

    # ❌ 遅い
    conda install numpy
    conda install pandas
    conda install matplotlib
    
    # ✅ 速い
    conda install numpy pandas matplotlib
    

    ケース4:ディスク容量がヤバい

    condaは容量食う。定期的に掃除しろ。

    # キャッシュ削除
    conda clean --all
    
    # 使ってない環境を削除
    conda env remove -n old-project
    

    ケース5:condaとpipを混ぜたら壊れた

    依存関係がバグった。

    対策:

    # 環境を作り直す
    conda deactivate
    conda env remove -n broken-env
    conda create -n fixed-env python=3.11
    conda activate fixed-env
    # 今度はcondaを優先して入れ直す
    

    教訓:condaとpipは混ぜるな危険。

    ケース6:Anacondaのライセンスが心配

    商用利用でAnaconda Repositoryを使うと有料の場合がある。

    対策:

    1. Miniforgeに乗り換える

    2. conda-forgeチャンネルを使う

    conda config --add channels conda-forge
    conda config --set channel_priority strict
    

    baseって何?触っていいの?

    デフォルト環境、conda自身がインストールされているものは、baseと呼ばれる。

    ルール:

    • baseには何も入れるな。

    • プロジェクトごとに新しい環境を作れ。

    • baseはconda管理用と割り切れ。

    理由:baseを汚すと、conda自体が壊れる可能性がある。

    conda vs venv:結局どっち?

    もう一度整理する。

    condaを使うべき場合:

    • AI・機械学習・データサイエンスやる

    • NumPy、SciPy、TensorFlowなど科学計算ライブラリ使う

    • 複雑な依存関係がある(C++ライブラリとか)

    • チームで環境を共有したい

    venvを使うべき場合:

    • Webアプリ開発

    • シンプルなスクリプト

    • ディスク容量が厳しい

    • Python標準だけで済ませたい

    俺の使い分け:

    • 機械学習プロジェクト → conda

    • Djangoアプリ → venv

    • ちょっとしたスクリプト → venv

    両方マスターしとけ。状況に応じて使い分けろ。

    次のステップ

    1. 実際にconda環境を作ってみる:記事読んだだけじゃ身につかない

    2. Jupyter Notebookを試す:データ分析の定番

    conda install jupyter
    jupyter notebook
    
    1. environment.ymlを作る習慣:プロジェクトごとに必ず作れ

    2. Hugging Faceと組み合わせる:別記事「Hugging Faceってなんだ?」参照

    まとめ:condaマスターへの道

    condaのインストールと基本操作、お疲れ様。これで君も:

    ✅ condaが何か説明できる ✅ Anaconda/Miniconda/Miniforgeの違いがわかる ✅ conda環境を作成・管理できる ✅ パッケージをインストールできる ✅ チームで環境を共有できる ✅ venvとcondaを使い分けられる

    仮想環境は面倒に見えるけど、絶対に使え。使わないと後で地獄を見る。マジで。

    「環境壊れたから全部アンインストールして入れ直す」とか、時間の無駄だろ?conda使えば秒で新環境作れる。

    プロジェクト始めるたびにconda createする習慣をつけろ。それだけで君のストレスは激減する。

    AIの世界で生き残るために、環境管理をマスターしろ。


    参考リンク:

    • Conda公式ドキュメント: https://docs.conda.io/

    • Conda Getting Started: https://docs.conda.io/projects/conda/en/stable/user-guide/getting-started.html

    • Minicondaダウンロード: https://docs.conda.io/en/latest/miniconda.html

    • Miniforgeダウンロード: https://conda-forge.org/download/

    • Anaconda利用規約: https://www.anaconda.com/terms-of-service

    • conda-forge: https://conda-forge.org/

     
     
     
    AIエンジニア、専門領域は動画を主としたコンテンツ生成 公式ドキュメントを読み込み、手を動かして検証した保存版ガイドをお届けします。一緒に環境構築の沼を抜けよう。

    あなたへのおすすめ