Anacondaでの仮想環境の仕組みやライブラリのインストール先について知りたい


anacodaインストール時の私の脳内のイメージについてご指摘ください。  
OSはCドライブにインストール、anacondaはDドライブにインストールにしているとしてください。

anacondaを用いた仮想環境について以下の画像のようにイメージしています。  
画像内では使用する言語をpythonとしています。また図、中右の枠のアナコンダがanaconda promptで表示される(base)環境です。  
―――①ここまで正しいですか？？

仮想環境を作ったあと、例えば仮想環境1や仮想環境2に、新たにライブラリをインストールします。  
―――②このときこのライブラリがインストールされるのはどこですか？

[![画像の説明をここに入力](https://i.stack.imgur.com/zpefV.png)](https://i.stack.imgur.com/zpefV.png)




【Python環境】に話を限ると正しくないように感じます。

`/a/b/c/d/bin`にpython実行ファイルやpip実行ファイルがあるとします。  
そこのpip実行ファイルでパッケージをインストールすると、`/a/b/c/d/lib/pythonX.Y/site-
packages`というディレクトリにファイルが置かれます。（X.Y はバージョン番号）  
そこのpython実行ファイルを起動すると（特別なオプションを付けたりしなければ）上記のディレクトリがパッケージの探索パスに追加されます。

pipの実行ファイルにはそれに対応したpython実行ファイルが存在し、  
python実行ファイルにはそれに対応したsite-packagesディレクトリが存在する、  
実のところ【Python環境】と呼ばれている概念はただこれだけの仕組みの上で成り立っています。

* * *

【仮想環境】と呼ばれているものは、すごく簡単には`/a/b/c/d/bin`や`/a/b/c/d/lib/pythonX.Y/site-
packages`というような **ディレクトリ構造を準備して** 、`/a/b/c/d/bin`にpython実行ファイルやpip実行ファイルを
**配置する** というだけのことです。  
そして、【仮想環境を切り替える】という行為は、単純に`/a/b/c/d/bin`というパスが他の場所よりも **優先されるようにする**
というだけの話です。  
（プロンプトの変更はもののついでです）

【Python環境】に限って言えば、【普通のPython環境】と【AnacondaのPython環境】を分けて考える理由は
なく、コマンドのオプションや使い方、 **どこに** ディレクトリを作るかという違いなどはありますが仕組みが違うということはないように感じます。

* * *

Anacondaの特徴は【Python環境】以外にあります。AnacondaはPython **以外の** バイナリイメージも提供しているからです。

Python用のパッケージで、C言語で書かれた（Unix系OSの用語としての）ライブラリがまずあって、それへのアクセス用インタフェースだけを提供しているようなものがあります。  
その場合、C言語で書かれたライブラリを先にインストールして使える状態にしておかなければなりません。  
そういったものでWindowsだと準備が大変だったりするものでも、AnacondaならAnacondaのディレクトリの中にコンパイル済みバイナリをインストールしてくれるという利点があります。  
そのようなバイナリファイル群に関しても、OSとは切り離された閉じた環境を楽に作れるのがAnacondaの特徴です。

（最近はpipでインストールした時も、必要なバイナリをsite-
packages配下に入れてくれるケースも増えているので、昔よりAnacondaのありがたみは薄れたように感じます）

