1. ホーム
  2. python

[解決済み] プラットフォーム間で conda 環境を共有する方法

2023-06-21 14:26:54

質問

の conda ドキュメントを参照してください。 http://conda.pydata.org/docs/using/envs.html で、環境を他の人と共有する方法を説明しています。

しかし、ドキュメントによると、これはクロスプラットフォームではありません。

NOTE: These explicit spec files are not usually cross platform, and      
therefore have a comment at the top such as # platform: osx-64 showing the  
platform where they were created. This platform is the one where this spec
file is known to work. On other platforms, the packages specified might not
be available or dependencies might be missing for some of the key packages
already in the spec.

NOTE: Conda does not check architecture or dependencies when installing 
from an explicit specification file. To ensure the packages work correctly,
be sure that the file was created from a working environment and that it is 
used on the same architecture, operating system and platform, such as linux-
64 or osx-64.

あるプラットフォーム(CentOSなど)のconda環境を別のプラットフォーム(Windowsなど)で共有・再現する良い方法はないでしょうか?

どのように解決するのですか?

この回答は、以下のことを確認したいという前提で書かれています。 一般的に気になるパッケージの同じバージョンが異なるプラットフォーム上にあることを確認したい。 のまったく同じバージョンを気にしないことを確認したい、という仮定で説明します。 すべて のパッケージの全く同じバージョンを気にしないことです。もし、あなたが 依存関係ツリー全体のすべてのパッケージの全く同じバージョンをインストールしようとすると、失敗する可能性が高くなります。 というのも、conda のパッケージには OSX/win/linux で異なる依存関係を持つものがあるからです。 というのも、conda のパッケージには OSX/win/linux で異なる依存性を持つものがあるからです。例えば のレシピは otrobopt は Win と OSx/linux で異なるパッケージをインストールするので、環境リストも異なります。 は異なるでしょう。

推奨: 手動で environment.yaml ファイルを作成し、気になる依存関係だけを指定するか を指定することをお勧めします。 あとはcondaソルバーに任せましょう。 おそらく注目すべきは conda-env (condaの環境を管理するために使用するツール) が明確に推奨していることです。 環境) が明確に推奨しているのは を常に作成することを推奨しています。 environment.yml ファイルを手作業で作成することを推奨します。

そうすると、あなたはただ conda env create --file environment.yml

の readme を見てください。 conda-env .

それらは非常にシンプルであることができます。

name: basic_analysis
dependencies:
  - numpy
  - pandas

あるいはもっと複雑で、依存関係をピン留めし、anaconda.org のチャンネルを指定して からインストールします。

name: stats-web
channels:
  - javascript
dependencies:
  - python=3.4   # or 2.7 if you are feeling nostalgic
  - bokeh=0.9.2
  - numpy=1.9
  - nodejs=0.10
  - flask
  - pip:
    - Flask-Testing

いずれの場合も、環境を作るのに conda env create --file environment.yaml .

注意: このとき .* をバージョンサフィックスとして使用する必要があるかもしれません。