【コンダ】

conda とは?

最終更新:
💡 プロジェクトごとの環境とパッケージを管理する

パッケージと実行環境を管理するツール。Python以外も扱える理由、環境の分離、pipとの併用と再現性の注意点を解説します。

📌 このページのポイント
conda:環境とパッケージを管理condaパッケージ・依存関係・環境を管理環境A:解析の例Pythonの指定した版解析用部品・ライブラリ環境B:別の例別の組み合わせ環境Aと分けて管理チャンネルから、対応する部品を取得OS・CPU・版・配布元の条件を確認
線はcondaが環境を管理する関係です。OSをまるごと複製する図ではなく、配布元や依存関係、端末の条件にも注意します。
ひよこ ひよこ
condaは、Pythonを入れる道具?
ペンギン先生 ペンギン先生
Python本体やパッケージを扱えるが、それだけではない。Rなどの言語や、C/C++のライブラリを含むcondaパッケージも管理できる。実行環境を分ける機能もある。
ひよこ ひよこ
pipと何が違うの?
ペンギン先生 ペンギン先生
pipはPythonパッケージを扱う。condaはPython本体などを含め、conda形式で配られる部品の依存関係と環境を管理する。pipで入れるパッケージにネイティブのコードが含まれる場合もあり、「C/C++は全部手動」とは言えない。
ひよこ ひよこ
プロジェクトごとに環境を作れる?
ペンギン先生 ペンギン先生
作れる。例えばconda create -n demo python=3.11で環境を作り、conda activate demoで切り替える。3.11は指定方法を示す例で、使うプロジェクトが必要とする版を選ぶ。
ひよこ ひよこ
AnacondaとMinicondaは同じ?
ペンギン先生 ペンギン先生
どちらもcondaを含む配布物だ。Anaconda Distributionは追加のパッケージを含み、Minicondaは最小限から始める。Miniforgeという選択肢もある。配布物と、パッケージの取得先の利用条件を確認しよう。
ひよこ ひよこ
pipも一緒に使える?
ペンギン先生 ペンギン先生
使えるが、依存関係に注意する。公式資料は独立した環境でcondaを先に使い、残りをpipで入れるよう案内している。その後conda側の追加が必要なら、環境を作り直す方法を勧めている。
ひよこ ひよこ
conda-forgeを追加するだけでよい?
ペンギン先生 ペンギン先生
コミュニティの配布元だが、既存の配布元との混在には注意する。conda-forgeはdefaultsとの同時インストールをサポートしないと説明している。必要なチャンネルと優先順位を環境ごとに整理しよう。
もっと詳しく知りたい人へ

environment.ymlを渡せば、どのPCでも完全に再現できる?

パッケージの版、取得先、OSやCPUの違いにも依存します。conda exportの--from-historyは直接指定した要件を共有し、環境に合う依存関係を再解決する方法です。全パッケージの厳密な状態を固定する方法とは区別します。

mambaとは、何が違う?

Mambaは、condaのパッケージや多くのコマンドと互換性を持つ別の管理ツールです。公式資料は中核のlibmambaをC++のライブラリと説明しています。速度が必ず何倍になると一律には言えません。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「conda」って出てきたら「パッケージと環境を管理するツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「conda」 = パッケージ・環境管理ツールの名前
💬 ツール、パッケージ形式、環境、コミュニティなどを指す文脈があります。Anaconda DistributionとMinicondaはcondaを含む配布物で、ツールそのものと区別します。

参考資料

← 用語集にもどる