web-dev-qa-db-ja.com

あるマシンにインストールされているAnaconda envを別のマシンに転送する方法は? [Ubuntuがインストールされている場合]

GuestOSでAnaconda(4.3.23)を使用していますubuntu 14.04 HostOSのVmwareにインストールされていますwindows 8.1。私はanacondaで環境をセットアップし、多くのライブラリーをインストールしました。それらのいくつかは、インストールが非常に煩雑でした(単純なpipインストールではありません)。いくつかのライブラリには内部依存関係があり、一緒にビルドし、それらのgitソースからビルドする必要がありました。

問題クラウドベースのVM(Azure GPUインスタンス)を使用してGPUを使用するつもりですが、多忙なインストールに再び入りたくありません。すべてのパッケージとライブラリを再度インストールするのにかかる時間にお金を無駄にしたくない

既存の環境変数(すべてが既にインストールされている)をCloud VMに転送/コピーする方法はありますか?

9
Qaisar Rajput

このドキュメントのページの最後から

今後の使用のためにパッケージを保存します。

conda list --export > package-list.txt

エクスポートファイルからパッケージを再インストールします。

conda create -n myenv --file package-list.txt
4
Miladiouss

conda list --exportがこのように失敗した場合...

conda list --export > package-list.txtを実行すると、次のようなファイルが作成されます。

# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: win-64
_tflow_1100_select=0.0.1=gpu
absl-py=0.5.0=py_0
astor=0.7.1=py_0
...

しかし、conda create -n myenv --file package-list.txtを実行して新しい環境を作成すると、次のエラーが発生します。

Solving environment: ...working... failed

PackagesNotFoundError: The following packages are not available from current channels:

  - markdown==2.6.11=py_0
  ...

...次にconda env exportを使用してみます

この説明 に従って、ソースマシンで次のコマンドを実行します。

source activate yourEnvironment
conda env export --no-builds > file.txt

ターゲットマシンで次を実行します。

conda env create --file /path/to/file.txt

conda env exportによって生成されたファイルは少し異なりますが、pipパッケージも含まれています

name: yourEnvironment
channels:
  - conda-forge
  - defaults
dependencies:
  - absl-py=0.5.0
  ...
  - pip:
    - astroid==2.0.4
    ...
1

Anacondaのインストール全体をクラウドインスタンスにコピーすることで、おそらく問題はなくなります。

1
Benitok