web-dev-qa-db-ja.com

conda、またはconda-forgeはPython環境に使用する必要がありますか?

Condaconda-forgeは両方ともPythonパッケージマネージャーです。両方のリポジトリにパッケージが存在する場合、適切な選択は何ですか?たとえば、Djangoはどちらでもインストールできますが、2つの違いはいくつかの依存関係です(conda-forgeにはさらに多くの依存関係があります)。これらの違いについての説明はなく、単純なREADMEもありません。

どちらを使用する必要がありますか?コンダまたはコンダフォージ?それは重要ですか?

77
justinnoor.io

簡単に言えば、私の経験では、どちらを使用するかは重要ではありません。

長い答え:

したがって、conda-forgeは、パッケージをインストールできる追加のチャネルです。この意味で、それはデフォルトのチャンネルや、人々がパッケージを投稿した他の何百(何千?)のチャンネルよりも特別なものではありません。 https://anaconda.org でサインアップし、独自のCondaパッケージをアップロードすると、独自のチャンネルを追加できます。

ここで、クロスプラットフォームパッケージマネージャーであるcondaとパッケージチャネルであるconda-forgeを区別する必要があります。 condaソフトウェアの主な開発者であるAnaconda Inc.(以前のContinuum IO)も、パッケージの個別のチャネルを保持しています。これは、オプションを変更せずにconda install packagenameと入力した場合のデフォルトです。

チャネルのオプションを変更するには2つの方法があります。 1つは、パッケージをインストールするたびにチャネルを指定することです。

conda install -c some-channel packagename

もちろん、パッケージはそのチャネルに存在する必要があります。同じチャネルを頻繁に使用している場合は、構成に追加することをお勧めします。あなたは書ける

conda config --add channels some-channel

チャンネルsome-channelchannels構成リストの先頭に追加します。これにより、some-channelに最高の優先順位が与えられます(優先順位は、複数のチャネルに特定のパッケージがある場合に選択されるチャネル( 一部 )を決定します)。リストの最後にチャネルを追加し、優先度を最低にするには、次のように入力します

conda config --append channels some-channel

追加したチャンネルを削除する場合は、次のように記述します。

conda config --remove channels some-channel

見る

conda config -h

その他のオプション。

以上のことから、Anacondaが管理するdefaultsチャネルの代わりにconda-forgeチャネルを使用する4つの主な理由があります。

  1. conda-forge上のパッケージは、defaultsチャネル上のパッケージよりも最新である可能性があります
  2. defaultsからは利用できないパッケージがconda-forgeチャンネルにあります
  3. openblasmklから)ではなく、defaultsconda-forgeから)などの依存関係を使用することをお勧めします。
  4. コンパイルされたライブラリ(C拡張またはCライブラリのラッパーなど)を必要とするパッケージをインストールする場合、mayベースCライブラリのバイナリ互換性のために単一のチャンネルから環境にすべてのパッケージをインストールする場合の非互換性(ただし、このアドバイスは古くなっている/将来変更される可能性があります)。
142
darthbith

Conda-forgeチャンネルでは、conda用にビルドされたが、公式のAnacondaディストリビューションの一部であるパッケージを見つけることができます。

一般に、それらのいずれかを使用できます。

0
Ashiq Imran

Conda-forgeを適用しない限り、そのチャネルは利用できないため、単純なconda installではインストールできないPythonライブラリがいくつかあります。私の経験から、pipはcondaよりもさまざまなチャネルソースを調べるのに一般的です。たとえば、python-constraintをインストールする場合は、pip installを使用して実行できますが、** cond **を使用してインストールできます。チャネルを指定する必要があります-conda-forge

conda install -c conda-forge python-constraint // works

だがしかし

conda install python-constraint
0
ewalel