Anaconda の conda コマンドでは、いわゆる仮想環境を作成することで任意のバージョンの 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
この設定はファイル .condarc の envs_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)?