私はpip
がpythonパッケージのパッケージマネージャであることを知っています。しかし、私はIPythonのウェブサイトへのインストールがconda
を使ってIPythonをインストールするのを見ました。
pip
を使ってIPythonをインストールできますか? conda
をすでに持っているのになぜpip
を別のpythonパッケージマネージャとして使うべきなのでしょうか。
pip
とconda
はどう違いますか?
Condaブログ :からの引用
Pythonの世界に長い間関わってきたので、私たちは皆pip、easy_install、およびvirtualenvを知っていますが、これらのツールは私たちの特定の要件すべてを満たしていませんでした。主な問題は、ソースコードにsetup.pyがなく、ファイルをPythonのサイトにインストールしない、HDF5、MKL、LLVMなどの非Pythonライブラリ依存関係を無視して、Pythonに焦点を当てていることです。 -packagesディレクトリ.
そこでCondaは、pip
がすること以上のことをすることを目的としたパッケージングツールとインストーラです。 Pythonパッケージのライブラリ依存関係 outside およびPythonパッケージ自体を処理します。 Condaはvirtualenv
のように仮想環境も作成します。
そのため、Condaは Buildout おそらくPythonとPython以外の両方のインストールタスクを処理できる別のツールと比較する必要があります。
Condaは新しいパッケージフォーマットを導入しているので、pip
とCondaを同じ意味で使うことはできません。 pip
はCondaパッケージフォーマットをインストールできません。 2つのツールを(conda install pip
と共にpip
をインストールすることによって)並べて使用することはできますが、どちらも相互運用できません。
これが簡単な要約です。
conda build
というツールがありますが、conda install
自体は既にビルドされたcondaパッケージからものをインストールします。両方の場合において:
Condaの最初の2つの箇条書きは、多くのパッケージにとってピップよりも有利な点です。 pipはソースからインストールされるので、ソースコードをコンパイルすることができない場合、それを一緒にインストールするのは面倒かもしれません(これはWindowsでは特に当てはまりますが、パッケージにCまたはFORTRANライブラリが難しい場合はLinuxでも当てはまります)依存関係)。 Condaはバイナリからインストールされます。つまり、誰か(例えばContinuum)はすでにパッケージをコンパイルするという大変な作業をしているので、インストールは簡単です。
あなたがあなた自身のパッケージを構築することに興味があるならば、いくつかの違いもあります。たとえば、pipはsetuptoolsの上に構築されていますが、condaは独自のフォーマットを使用しています。これには(静的で、Pythonに依存しないなどの)利点があります。
他の答えは詳細の公正な説明を与えるが、私はいくつかの高レベルのポイントを強調したい。
pipは、 python packages のインストール、アップグレード、アンインストールを容易にするパッケージマネージャです。これはvirtual python 環境でも動作します。
condaは 任意のソフトウェア (インストール、アップグレード、アンインストール)用のパッケージマネージャです。これはvirtual system environmentでも動作します。
Condaの設計の目標の1つは、ユーザーが必要とするソフトウェアスタック全体のパッケージ管理を容易にすることです。そのうちの1つ以上のpythonバージョンはごく一部です。これには、線形代数などの低レベルライブラリ、Windows上のmingwなどのコンパイラ、エディタ、HgやGitなどのバージョン管理ツール、または配布と管理が必要なものすべてが含まれます。
バージョン管理のために、pipでは複数の python 環境を切り替えて管理することができます。
Condaを使うと/ C - ライブラリ、コンパイラ、テストスイート、データベースエンジンなどのように 複数の汎用環境 の間でバージョン番号が異なる場合があります。
CondaはWindows中心ではありませんが、Windowsでは、コンパイルが必要な複雑な科学パッケージをインストールして管理する必要がある場合に、現在利用可能なはるかに優れたソリューションです。
Windows上でこれらのパッケージの多くをpipでコンパイルしようとしたときや、コンパイルが必要なときに失敗したpip install
セッションをデバッグしようとしたときにどれだけの時間が費やされたかを考えて泣きたいです。
最後のポイントとして、Continuum Analyticsは、通常のパッケージ開発者が自分のパッケージ用の独自のカスタム(ビルドされた!)ソフトウェアスタックを作成できるように(無料) binstar.org (現在は anaconda.org と呼ばれる)ユーザーはからconda install
できます。
あなたをさらに混乱させないために、あなたはあなたのconda環境の中でpipを使うこともできます。
conda install -n testenv pip
source activate testenv
pip <pip command>
また、毎回存在するので、どの環境のデフォルトパッケージにもpipを追加することができるので、上記のスニペットに従う必要はありません。
連続ウェブサイトへの Conda for Data Science 記事からの引用:
コンダvsピップ
Pythonプログラマーはおそらく、PyPIからパッケージをダウンロードして要件を管理するpipに精通しているでしょう。 condaとpipはどちらもパッケージマネージャですが、非常に異なります。
- PipはPythonパッケージに固有であり、condaは言語に依存しないため、condaを使用して任意の言語のパッケージを管理できます。pipはソースからコンパイルし、condaはバイナリをインストールするので、コンパイルの負担が軽減されます。
- Condaはネイティブに言語に依存しない環境を作成しますが、pipはPython環境のみを管理するためにvirtualenvに依存します。常にcondaパッケージを使用することが推奨されますが、condaにはpipも含まれます。例えば、condaパッケージを持っていないがpipを通して利用可能なpythonパッケージをインストールするには、単に実行してください。例えば:
conda install pip
pip install gensim
WINDOWSユーザーの場合
「標準」パッケージツールの状況は最近改善されています。
pypi自体には、9月の時点でホイールパッケージの48%が含まれています。 2015年11月(2015年5月の38%、2014年9月の24%から)、
ホイール形式は最新のpython 2.7.9ですぐにサポートされるようになりました。
「標準」+「調整」パッケージツールの状況も改善されています。
http://www.lfd.uci.edu/~gohlke/pythonlibs で、ホイール形式のほぼすべての科学的パッケージを見つけることができます。
mingwpyプロジェクトは、ある日「コンパイル」パッケージをWindowsユーザーに提供し、必要なときにソースからすべてをインストールできるようにします。
「コンダ」パッケージングは、それがサービスを提供する市場にとって優れたままであり、「標準」shouldが改善される領域を強調しています。
(また、標準ホイールシステムとcondaシステム、またはビルドアウトにおける依存関係の仕様の複数の努力はあまりPythonyではありません。これらすべてのパッケージング 'コア'テクニックが一種のPEPを介して収束できれば素晴らしいでしょう)
Conda:神話と誤解 (包括的な説明)からの引用:
...
現実:Condaとpipは異なる目的を果たしており、ごく一部のタスク、つまり独立した環境にPythonパッケージをインストールすることにおいてのみ直接競合しています。
_ p _ ip _ i _ nstalls _ p _ ackagesを表すPipは、Pythonの公認のパッケージマネージャであり、最も一般的に使用されています。 Python Package Index(PyPI)で公開されているパッケージをインストールします。 pipとPyPIはどちらもPython Packaging Authority(PyPA)によって管理およびサポートされています。
つまり、pipはPythonパッケージ用の汎用マネージャです。 condaは、言語に依存しないクロスプラットフォームの環境マネージャです。ユーザーにとって最も顕著な違いはおそらくこれです:pipはpythonパッケージをあらゆる環境にインストールします。 condaはconda環境内に任意のパッケージをインストールします。 Pythonパッケージを独立した環境にインストールするだけでよいのであれば、condaとpip + virtualenvはほとんど互換性があります。依存関係の処理とパッケージの可用性の違いは異なります。分離環境とは、conda-envまたはvirtualenvを意味します。これらのシステムでは、システムのPythonインストールを変更せずにパッケージをインストールできます。
Myth#2を別にしても、Pythonパッケージのインストールだけに焦点を当てると、condaとpipは異なるオーディエンスと異なる目的に役立ちます。たとえば、既存のシステムPythonインストール内でPythonパッケージを管理したい場合、condaは役に立ちません。設計上、conda環境内にのみパッケージをインストールできます。たとえば、外部の依存関係に依存する多くのPythonパッケージ(NumPy、SciPy、およびMatplotlibが一般的な例)を使用したい場合、それらの依存関係を意味のある方法で追跡しながら、pipは役に立ちません。 PythonパッケージとPythonパッケージのみを管理します。
Condaとpipは競合他社ではなく、むしろ異なるユーザーグループと使用パターンに焦点を当てたツールです。
pip
はPython専用です
conda
はAnaconda + Rの依存関係などの他の科学的なパッケージのためだけのものです。すでにPythonに付属しているAnacondaを誰もが必要とするわけではありません。 Anacondaは主に機械学習やディープラーニングなどを行う人々のためのものです。Casual Python devは彼のラップトップ上でAnacondaを実行しません。
IPythonをインストールするのにpipを使用できますか?
確かに、両方(ページの最初のアプローチ)
pip install ipython
そして(3番目のアプローチ、2番目はconda
)
GitHubまたはPyPIからIPythonを手動でダウンロードできます。これらのバージョンのいずれかをインストールするには、それを解凍し、ターミナルを使用してトップレベルのソースディレクトリから以下を実行します。
pip install .
すでにpipを持っているのになぜcondaを他のpythonパッケージマネージャとして使うべきなのですか?
言ったように ここ :
特定のパッケージが必要な場合、おそらく1つのプロジェクトだけの場合、またはプロジェクトを他の人と共有する必要がある場合は、condaの方が適切なようです。
コンダはピップインを上回る( _ ymmv _ )
Pipとcondaはどう違いますか?
それは他の誰もが広く答えています。
私はマイナーな性質のもう一つの違いを見つけたかもしれません。私のPython環境は、/usr
などではなく/home
の下にあります。インストールするためには、Sudo install pip
を使わなければなりません。私にとって、Sudo install pip
の望ましくない副作用は、他の場所で広く報告されているものとはわずかに異なります。そうした後、python
をインストール済みパッケージのいずれかをインポートするには、Sudo
をSudo
とともに実行する必要があります。私はそれをあきらめ、最終的にSudo conda
を使って/usr
の下の環境にパッケージをインストールすることができ、それはSudo
に対するpython
許可を必要とせずに通常インポートされることがわかりました。私はSudo conda
やSudo pip uninstall pip
を使うよりもむしろSudo pip --upgrade install pip
を使って壊れたpip
を修正しました。