「Conda」の立ち上げから 1 年後、Anaconda の創設者である Travis Oliphant はブログで、標準の Python パッケージに貢献するだけでなく、Conda のような別の Python パッケージ マネージャーを促進する理由をよく尋ねられたことについて書いています。 しかし、それはまさにオリファントが行ったことです。 Conda は、2012 年に PyData の就任式で Python の創設者 Guido van Rossum と会った後に登場しました。
Rossum は、パッケージングの問題に関する Oliphant の質問に答えており、「あなたのニーズは、より大きな Python コミュニティと比較して非常に珍しいように思われるので、独自のコミュニティを構築したほうがよいと思われます」と述べています。
なぜ Conda を使用するのですか?
Conda は、最新バージョンの Python にプリインストールされている Python のネイティブ パッケージ マネージャー pip の代替として導入されました。 しかし、Conda は、その必然性を正当化するのに十分な評価を得ていません。 著者で MLOps の専門家である Noah Gift
は、AWS Sagemaker ユーザーの間で Conda がどれほど人気があるかについて質問しました。 pip が既にインストールされているときに Conda をインストールすると、どのようなメリットがありますか?
これに対する集合的な反応は、可能な限り散らばっています。 深層学習研究者で博士号取得者の Sebastian Raschka 氏は、他のすべての組み合わせを試した後、Conda 環境を好んだと述べています。 「Pip と virtualenv を使用すると、要件が異なる仮想環境にパッケージをインストールできますが、異なる Python バージョンで同じことを行うのには役立ちません。 そのためには、その上に pyenv (さまざまなバージョンの Python を管理するための別のツール) が必要であり、注意しないとすぐにかなり面倒なことになる可能性があります」と彼は指摘しました。
Condaの便利な利点
Conda が提供する利便性は、コミュニティから高く評価されている最大の強みの 1 つです。 開発者はパッケージをインストールして環境をすべて同じツール内で管理できますが、pip を使用すると、ユーザーはその上で別の外部ツールを使用して環境を管理する必要があります。
別の開発者は次のように述べています。 私の見解では、Conda は、ローカル マシン上のプロジェクト間で環境を再利用する最も簡単な方法でもあります。 そして、Conda ほど便利な代替手段を私は知りません。」

Condaには、として知られているものもあります アナコンダナビゲーター、Jupyter、RStudio、VSCode などの広く使用されているアプリケーションを起動するための GUI またはグラフィカル ユーザー インターフェイス プログラム。 ナビゲーターは、開発者の作業をより簡単にします。 別の MLOps エンジニアは、「GPU マシンがあり、それらのプロジェクトで複数のバージョンの Cuda を使用している場合、Conda 環境が非常に役立つことがわかりました」と述べています。
Conda には、NumPy、Pandas、Scikit-Learn、Matplotlib などの多数の ML パッケージもプリインストールされています。 ある開発者は、Reddit コミュニティのディスカッションでこれについて次のように述べています。 一般的な科学計算パッケージやパッケージ化されたソフトウェアを使用する予定がない場合、唯一の欠点は、必要のないソフトウェアをダウンロードしてしまうことです」と彼は指摘しました。
両者の主な違いは、 コンダ 言語にとらわれず、クロスプラットフォームの環境マネージャーです。 おしっこ すべての Python の汎用マネージャーです。 すべての作業が隔離された環境内で Python パッケージを使用している場合、Conda と pip+virtualenv はほとんど置き換え可能です。
競合他社ではなく、ターゲット層が異なる
これら 2 つの間の問題は、どちらが優れているかではなく、単純に、これら 2 つが対象とするユーザー ベースが異なるということです。ユーザーが既存の python インストール内で Python パッケージを管理したい場合、Conda は役に立ちません。 Conda 環境内にパッケージをインストールします。 通常は NumPy などの外部依存関係を持つ Python パッケージを使用する場合、pip は Python パッケージにのみ制限されているため機能しません。 これは、以前に想定されていたように、Conda と pip が同じ競争に参加していないことを示唆しています。.

しかし、pip には、大規模な既存のコミュニティを持つツールと同じ利点があります。Conda よりも標準の venv または virtualenv を好むユーザーは、pip が使用されているという理由だけで、StackOverflow で見つけたクエリやエラーの解決策を見つける可能性が高くなります。すでにより多くの人々によって。
pip が持つもう 1 つのメリットは、すでにより多くのテストが行われており、その結果、より堅牢であると考えられていることです。 Conda には、ユーザーが pip では決して見つけられなかったエラーが含まれている可能性があり、pip の方が単純に信頼性が高いという認識が構築されます。
多くの開発者が、新しい頼りになるパッケージは ミニフォージ これは本質的に「Miniconda」であり、Anaconda のはるかに小さい兄弟ディストリビューションであるか、Miniconda 自体を使用することを好みます。 Miniforge にはデフォルトのパッケージとして conda-forge があります。 ある開発者は、Miniforge は「平均的な pip パッケージと比較して、OS とバージョンの互換性についてよりよくテストされている」とコメントしています。
Miniforge を称賛する別の開発者は次のように述べています。