web-dev-qa-db-ja.com

PyCharm Virtual EnvironmentとAnaconda Environmentの違いは何ですか?

PyCharmで新しいプロジェクトを作成すると、新しい仮想環境が作成されます。 Pythonスクリプトを実行すると、システム環境ではなく、この環境のインタープリターを使用して実行されることを読みました。したがって、いくつかのパッケージをインストールする必要がある場合、これにのみインストールできますシステム環境ではなく、環境です。

Anaconda Environmentについても読みました。新しいAnaconda環境を作成すると、システムenvとは別に新しい環境が作成されます。私のプロジェクトでは、この環境を使用して、メインシステム環境ではなく、ここに必要なパッケージのみをインストールできます。

さて、私の質問は、PyCharmによって作成された仮想環境とAnacondaによって作成された環境の違いは何ですか? PyCharmによって作成された仮想環境は約15-20MBで、Anacondaの仮想環境は90MBです。だから、違いがあるに違いない。また、Anaconda Environmentインタープリターを使用するようにPyCharmを構成できることを読みました。

それでは、PyCharmとAnacondaによって作成された環境の違いは何ですか?

14
Nagabhushan S N

anacondaは単なるコレクションであることを明確にする必要があります。実際の環境マネージャーはcondaです。 ここminicondaです。完全なanacondaコレクションではなく、環境を管理するために必要な部分のみが含まれています。

condaは単純なPythonパッケージマネージャーを超えていますが、システム全体のパッケージマネージャーです。痛みを伴わずにパッケージをインストールするのに役立ちます。古典的な例はnumpy on Windows。condaなしでは、入手が困難な特定のCコンパイラが必要なため、本当に困難ですが、condaを使用すると、numpyだけでインストールできます。 1つのコマンドconda install numpy。コンパイラの問題とCの依存関係を自動的に解決します。


質問に戻って、Pycharmでenvを作成すると、Virtualenv EnvironmentConda Environment、またはPipenv Environmentのどのenvを作成するかを尋ねられます。私に関しては、Pipenv Environmentを選択します。このenvは現在のプロジェクトにバインドされ、ロックファイルを生成できるためです。

この場合、あなたは今それを理解できると思います:「PyCharmによって作成された」または「Anaconda」という名前のenvはありません。 「Virtualenv、Conda、またはPipenvによって作成された」という名前のenvのみがあります。そして、Pycharmはそのうちの1つを使用してラップするだけです。


それでは、Conda EnvironmentVirtualenv EnvironmentPipenv Environmentは本質的にVirtualenv Environmentと洗練されたpip)の違いは何ですか?違いは、目的が異なることに起因します。

Conda Environmentは通常「Pythonユーザー」用です。彼らはPythonをWebクロール、データマイニング、画像処理などの他の作業を行うためのツールとして使用します。Pythonについてはあまり知らないので(知っている必要はありません) condaは可能な限り自動です。また、condaによって作成されたenvはユーザー全体のディレクトリにあるため、タスクはコンピューターのどこにでも配置できます。また、異なるPythonバージョン。これはcondaではできますが、virtualenvではできません。

Virtualenv Environmentは通常「Python開発者」用です。彼らはPython=を使用してアプリケーションまたはパッケージをビルドします。Virtualenvによって作成されたenvは通常、現在のプロジェクトのディレクトリにあります。したがって、すべてのアプリケーションに対してenv 。

総括する:

Conda Environment

  1. Pythonパッケージだけでなく、異なるPythonバージョンとシステム全体の依存関係も管理します。
  2. Envはユーザー全体のディレクトリにあります。
  3. 少ない環境。

Virtualenv Environment

  1. Manage Python packages。主な目的は、すべてのアプリケーションの依存関係を分割することです。
  2. Envは通常、プロジェクト全体のディレクトリにあります(pipenvはデフォルトでユーザー全体のディレクトリにenvを作成しますが、多くの人はプロジェクトディレクトリではデフォルトを使用するべきだと考えています)。
  3. より多くの環境(すべてのアプリケーションの新しい環境)

私にとっては、両方を使用します。 condaを使用して異なるPythonバージョンを管理し、pipenvを使用してアプリケーションの依存関係を管理します。

18
Sraw

どちらの環境もpythonの virtualenv に基づいているため、競合を心配することなく、それらを個別に使用し、必要に応じてパッケージを構成(またはインストール)できます。これは、virtualenvの本質です。

Anacondaは、pythonディストリビューション(Linuxディストリビューションと同様))です。デフォルトでは、その意見に基づいて他のパッケージを追加しますしたがって、インストールはプレーンなVanilla pythonをインストールする場合よりも大きくなり、これが仮想環境が非常に大きい理由でもあります。

PycharmはIDEであり、たまたまpythonのvirtualenv機能をサポートしています。そのため、必要に応じて作成できます。単純なpython distroを使用して作成できるため、お気づきのとおり、これはAnacondaのようなディストリビューションを使用する場合よりもサイズが小さくなります。

サイズの問題はAnacondaに固有のものではありません。anacondaconda listによってインストールされたすべてのパッケージをリストし、「軽量」virtualenvに手動でインストールすると、サイズも大きくなります。あなたが私の主張を得ると信じています。

2