Edited at

conda環境の保存と再構築の仕方

More than 1 year has passed since last update.


conda環境のセーブとリストア

pipの環境はpip freezeを使った環境の保存と再構築の方法があります。

同様のことをAnacondaやMinicondaで作った環境(conda環境)でもできないか調べたところ、公式マニュアル にあったのでメモしておきます。


本記事での環境

Anaconda3/Miniconda3 4.3.30


方法

方法は2通りあります。

2の方法の方が利点が大きいです。


1. conda を使った方法

保存

conda list --explicit > env_name.txt

再構築(新規に環境をつくる場合)

conda create -n [env_name] --file env_name.txt

再構築(既存の環境に足す場合)

conda install --name [env_name] --file env_name.txt

公式マニュアル によると、こちらの方法は、エクスポートしたマシンと同じOS・アーキテクチャのマシン上の移行に使う必要があるとのことです。

エクスポートしたtxtファイル内にエクスポートしたマシンのOS・アーキテクチャ情報が入っています。

上記再構築のコマンドは、実行時にOS・アーキテクチャのチェックはしないので注意する必要があります。


2. conda env を使った方法

保存

conda env export -n [env_name] > env_name.yml

再構築

conda env create -f=env_name.yml

こちらの方法は1と違い、アーキテクチャに依存しません。別のOS・アーキテクチャのマシン上へも移行できます。

※2018/5/22追記 別のOSだとcondaやpipのリポジトリの内容が異なるため、そのまま移行はほぼ不可能でした。同種別OSの別バージョンへの移行までが現実的と思われます。

また、condaパッケージだけでなくpipパッケージの情報も入っているので、pip含めて全環境を移行できます。

でもこちらはおそらく、既存の環境にパッケージ追加、はできません。あくまで移行用。

※2018/5/22追記 ymlに書き足せば追加できるし、当然ながら環境構築後に個別で追加・削除もできます。


備考


  • whlファイルでしか入れられなくて後から入れたパッケージがあると再構築コマンドがエラーになるので、その時は上記の保存コマンドで生成したyamlファイルから該当パッケージの行を削除して実行する必要があります。


参考