Anaconda と conda、pip と conda の違い

2012 年にリリースされた Conda は、オープンソースのクロスプラットフォーム パッケージおよび環境管理ツールです。

1. Conda と Anaconda の違い

Conda は Anaconda 内にパッケージ化されていますが、この 2 つは異なる目的を持つ別のものです。

Conda と Anaconda はよく混同されます。これはおそらく、Conda が Anaconda と Miniconda に緊密にパッケージ化されているためです。

Anaconda はソフトウェアディストリビューションです。ソフトウェア配布は、オペレーティング システムにインストールして使用できる、事前に構築および構成されたパッケージのコレクションです。Anaconda は Anaconda Company によって開発されており、PyData エコシステムのコア ソフトウェアを含む完全なディストリビューションであり、Python 自体と、conda、numpy、scipy、ipython などの何百ものサードパーティ オープン ソース プロジェクトのバイナリが含まれています。

Miniconda もソフトウェアディストリビューションです。Miniconda は本質的に、空の conda 環境をインストールするために使用されるインストーラーであり、Conda と Conda の依存関係のみが含まれており、前の段落でリストされたパッケージは含まれていません。したがって、最初から始めて、必要なものをインストールできます。もちろん、conda intall anaconda を通じて anaconda をインストールすることもできます。

Conda はパッケージおよび環境管理ツールです。パッケージ管理ツールは、パッケージのインストール、アップグレード、削除を自動化するために使用されるツールです。Conda には「conda install」、「conda update」、「conda Remove」などのサブコマンドがあるため、パッケージ管理ツールの定義を完全に満たしています。

注: 必要に応じて、Anaconda と Miniconda を使用せずに、Conda を完全に独立してインストールすることもできます。

2. Conda と Pip の違い

Conda は、言語に依存しない、クロスプラットフォームのパッケージおよび環境マネージャーです。conda は Python の PyData コミュニティから生まれましたが、Python パッケージの管理に適しているだけでなく、一般的なパッケージ管理ツールでもあります。Conda を使用すると、あらゆる言語で記述されたあらゆるタイプのパッケージと依存関係を作成および管理できます。これは、apt または yum のクロスプラットフォーム バージョンによく似ています。

Conda は conda 環境にのみパッケージをインストールできますが、さまざまな言語や種類のパッケージをインストールできます。

したがって、既存のシステム Python 環境に Python パッケージをインストールしたい場合、conda は conda 環境にのみパッケージをインストールできるため、役に立ちません。

Pip は、Python パッケージのユニバーサル マネージャーです。pip の正式名はPip Install Packagesで、Python 用の公式に認定されたパッケージ管理ツールです 。 Python パッケージのみを管理でき、通常は Python Package Index (PyPI) で公開されているパッケージをインストールするために使用されます。Pip と PyPI はどちらも Python Packaging Authority (PyPA) によって管理およびサポートされています。

Pip はどの環境にもパッケージをインストールできますが、インストールできるのは Python パッケージのみです。

したがって、外部依存関係 (NumPy、SciPy、Matplotlib など) に依存する多くの Python パッケージを使用する必要がある場合、またはこれらのパッケージの外部依存関係を追跡したい場合、pip は Python パッケージしか管理できないため、役に立ちません。 。

独立した環境に Python パッケージをインストールするだけであれば、conda の役割は pip+virtualenv の役割とほぼ同じです。「独立した環境」とは、conda 環境や virtualenv のことで、システムの Python インストールを変更することなく、さまざまなパッケージをインストールできます。

以下は conda と pip の機能の比較です。

コンダ ピップ
管理 バイナリ ホイールまたはソースコード
コンパイラが必要です いいえ はい
言語 どれでも パイソン
仮想環境 サポート virtualenv や venv などによるサポート。
依存関係のチェック はい 画面ではユーザーに選択を求めるプロンプトが表示されます。
パッケージソース Anaconda リポジトリとクラウド PyPI

3. Conda と pip+virtualenv の違い

前述したように、Python パッケージを独立した環境にインストールするだけであれば、conda の機能は pip+virtualenv の機能とほぼ同じです。

しかし、両者の間にはまだいくつかの違いがあります。

まず、conda 環境では、Python 自体のインストールとアップグレードを含め、さまざまなバージョンの Python を管理できます。ただし、virtualenvs は、外部で管理されている既存の Python 実行可能ファイルに基づいている必要がありますvirtualenv が実現できることは、異なる環境の Python パッケージは互いに独立していますが、異なる環境で使用される Python は同じバージョンであるということです。

次に、conda は、依存関係をシームレスに管理するなど、Python 以外の依存関係を追跡できます。また、LAPACK や OpenSSL などの基本ツールの並列バージョンでもあります。

繰り返しますが、conda 環境は、実行可能パスに配置された真に独立した環境です。virtualenv の環境はシンボリック リンク (シンボリック リンク) に基づいています。この環境は virtualenv の独立性を損ない、Python 以外の依存関係に対して非常に脆弱になる場合があります。

最後に、conda install pip を実行し、pip install を使用して Python パッケージを conda 環境にインストールできます。ただし、conda を virtualenv にインストールしないほうがよいでしょう。そうしないと、奇妙な問題が発生する可能性があります。

4. Conda と Anaconda Company の関係

Conda には Anaconda との依存関係や拘束関係はありません。これは 100% オープンソースであり、BSD ライセンスに基づいて GitHub でホストされています。ただし、conda のデフォルト チャネルは完全にオープン ソースではなく、オープン ソースではないパッケージがおそらく数十個あります。

Anaconda の重要なサービスは、ビルド アーティファクトのホスティング サービスを無料で提供することですが、Anaconda の将来の料金が心配な場合は、Anaconda のホスティング サービスを使用する必要はありません。

現在、2016 年に開始された、 Conda-Forgeと呼ばれるコミュニティ主導の取り組みが行われていますこれにより、conda のパッケージ化と配布が完全にオープンソースになります。すべてのパッケージは Github でホストされており、バイナリは無料の CI ツール (Mac の Travis CI、Windows の AppVeyor、Linux の CircleCI など) を使用して自動的に作成されます。各パッケージのすべてのメタデータは Github リポジトリに保存され、パッケージのアップグレードは GitHub プル リクエストのマージを通じて完了します。

Conda-Forge は、そのパッケージをhttps://anaconda.org/にも公開します。

conda パッケージは営利企業 Anaconda Corporation によってホストされていることに注意してください。同様に、Python Package Index は営利企業 Packspace によってホストされています。

 

おすすめ

転載: blog.csdn.net/HideInTime/article/details/123925490