web-dev-qa-db-ja.com

pyenv、virtualenv、anacondaの違いは何ですか?

私はRubyプログラマーであり、Pythonを学ぼうとしています。それはrbenvからのコピーアンドペーストのようなものであるため、私はpyenvとかなり家族です。 Pyenvを使用すると、システムに複数のバージョンのpythonを含めることができ、システムの重要な部分に触れることなくpythonを分離できます。

すべてのpythonインストールにはpipパッケージが付属していると思います。私がまだ理解していないのは、このvirtualenvとanacondaを使用することを示唆する多くの優れたpythonライブラリがあることです。 pyenvのvirtualenvプラグインも見つけることができます。

今、私はこれら2つのpyenvとvirtualenvの目的と混同しています。さらに悪いことに、pyenvにはvirtualenvプラグインがあります。

私の質問は:

  • pyenvとvirtualenvの違いは何ですか?
  • Pyenvとvirtualenvの両方でpipコマンドを使用することに違いはありますか?
  • このpyenv virutalenvは何をしますか?

例とあなたの説明は高く評価されます。

91
channa ly

編集:ここでもpipに言及する価値があります。condapipには、このトピックに関連する類似点と相違点があります

pip:Pythonパッケージマネージャー。

  • pipは、python gemコマンドと同等のRubyと考えるかもしれません
  • pipは、デフォルトではpythonに含まれていません。
  • homebrew を使用してPythonをインストールできます。これにより、pipが自動的にインストールされます:brew install python
  • OSXの最終バージョンには、デフォルトでpipが含まれていませんでした。 MacシステムのPythonバージョンにpipを追加するには、Sudo easy_install pip
  • PyPI:pythonパッケージインデックス を使用して、Pythonパッケージを見つけて公開できます。
  • Requirements.txtファイルはRuby gemfileと同等です
  • 要件テキストファイルを作成するには、pip freeze > requirements.txt
  • この時点で、システムにpythonがインストールされており、システムにインストールされたすべてのpythonパッケージの概要を示すrequirements.txtファイルを作成しました。

pyenv:Pythonバージョンマネージャー

  • ドキュメントからpyenvを使用すると、Pythonの複数のバージョンを簡単に切り替えることができます。シンプルで目立たず、UNIXの伝統である1つの目的に適した単一目的ツールに従っています。このプロジェクトはrbenvとRuby-buildから分岐され、Python用に変更されました。
  • 多くの人々 python3の使用をためらう
  • 異なるバージョンのpythonを使用する必要がある場合は、pyenvを使用して簡単に管理できます。

virtualenv:Python Environment Manager。

  • ドキュメントから対処されている基本的な問題は、依存関係とバージョンのいずれか、および間接的に許可です。 LibFooのバージョン1を必要とするアプリケーションがあり、別のアプリケーションがバージョン2を必要とすることを想像してください。これら両方のアプリケーションをどのように使用できますか?すべてを/usr/lib/python2.7/site-packages(またはプラットフォームの標準の場所)にインストールすると、アップグレードすべきではないアプリケーションを意図せずにアップグレードしてしまう状況に陥りやすくなります。 =
  • virtualenvを作成するには、単にvirtualenv ENVを呼び出します。ここで、ENVは新しい仮想環境を配置するディレクトリです。
  • virtualenvを初期化するには、source ENV/bin/activateが必要です。使用を停止するには、単にdeactivateを呼び出します。
  • virtualenvをアクティブにしたら、プロジェクトのpip install -rファイルに対してrequirements.txtを実行して、ワークスペースのすべてのパッケージ要件をインストールできます。

Anaconda:パッケージマネージャー+環境マネージャー+追加の科学ライブラリ

  • ドキュメントからAnaconda 4.2.0には、Python(2.7.12、3.4.5、および/または3.5.2)の簡単なインストールと、 NumPy、Pandas、SciPy、Matplotlib、IPythonを含む100以上の構築済みおよびテスト済みの科学的および分析的なPythonパッケージと、単純なconda install <packagename>を介して利用可能な620以上のパッケージ
  • Web開発者として、私はAnacondaを使用していません。すべてのパッケージを含めて最大3GBです。
  • 個人的に使用した経験はありませんが、スリム化されたminicondaバージョンがあり、pip + virtualenvを使用するよりも簡単なオプションのようです。
  • condaを使用するとパッケージをインストールできますが、これらのパッケージはPyPIパッケージとは別であるため、インストールする必要のあるパッケージの種類によっては、さらにpipを使用する必要があります。

参照:

101
Wade Williams