Help us understand the problem. What is going on with this article?

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ファイルから該当パッケージの行を削除して実行する必要があります。

参考

nshinya
AWS Solutions Architect. Working for AWS. Opinions are my own, not endorsed by any org. AWSでSolutions Architectをやっています。 投稿は、個人の意見であり、所属する企業や団体は関係ありません。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away