Anacondaの仮想環境が作られる標準のディレクトリを変更する

Anacondaconda コマンドでは、いわゆる仮想環境を作成することで任意のバージョンの Python やパッケージの組み合わせを一つの計算機で共存させることができる。今日は、その仮想環境のファイル群を配置する標準のディレクトリを変更する方法について書いておく。

動作確認環境

  • Windows 10
  • conda 4.5.11 (Miniconda)

設定の確認方法と変更方法

Anaconda は仮想環境のファイル群を配置するディレクトリパスを複数設定でき、envs_dirs という設定値 でこのリストを管理している。envs_dirs の現在有効な値は conda config コマンドで確認できる。たとえば:

(base) C:\Users\sgryjp\src\blog>conda config --show envs_dirs
envs_dirs:
  - C:\Users\sgryjp\Miniconda3\envs
  - C:\Users\sgryjp\AppData\Local\conda\conda\envs
  - C:\Users\sgryjp\.conda\envs

この設定はファイル .condarcenvs_dir キーで変更できる。また、環境変数 CONDA_ENVS_PATH が設定されていると、その値がこのリストの先頭に追加され、最優先で使用される。.condarc でも CONDA_ENVS_PATH でも良いのだけれど、個人的には前者は色々な場所に存在しうる点が面倒なので環境変数を使う方が好みに合うかな。

次に動作例を記す。

(base) C:\Users\sgryjp\src\blog>echo %CONDA_ENVS_PATH%
D:\conda\envs

(base) C:\Users\sgryjp\src\blog>conda config --show envs_dirs
envs_dirs:
  - D:\conda\envs
  - C:\Users\sgryjp\Miniconda3\envs
  - C:\Users\sgryjp\AppData\Local\conda\conda\envs
  - C:\Users\sgryjp\.conda\envs

なお、当面は CONDA_ENVS_PATH に指定するディレクトリパスは「envs で終わる」ようにした方が良い。さもないと、コマンドプロンプトの一部として表示される仮想環境名((base) の部分)がフルパスで表示されてしまい、非常に煩わしくなる。

(base) C:\Users\sgryjp\src\blog>echo %CONDA_ENVS_PATH%
D:\conda\envs

(base) C:\Users\sgryjp\src\blog>conda create -n py35 "python==3.5.*"
Solving environment: done

## Package Plan ##

  environment location: D:\conda\envs\py35

  added / updated specs:
    - python=3.5


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    wheel-0.31.1               |           py35_0          81 KB
    wincertstore-0.2           |   py35hfebbdb8_0          13 KB
    python-3.5.6               |       he025d50_0        18.2 MB
    pip-10.0.1                 |           py35_0         1.8 MB
    certifi-2018.8.24          |           py35_1         140 KB
    setuptools-40.2.0          |           py35_0         597 KB
    ------------------------------------------------------------
                                           Total:        20.8 MB

The following NEW packages will be INSTALLED:

    certifi:        2018.8.24-py35_1
    pip:            10.0.1-py35_0
    python:         3.5.6-he025d50_0
    setuptools:     40.2.0-py35_0
    vc:             14.1-h0510ff6_4
    vs2015_runtime: 14.15.26706-h3a45250_0
    wheel:          0.31.1-py35_0
    wincertstore:   0.2-py35hfebbdb8_0

Proceed ([y]/n)?