小编典典

如何跨平台共享conda环境

python

http://conda.pydata.org/docs/using/envs.html上的conda文档介绍了如何与他人共享环境。

但是,文档告诉我们这不是跨平台的:

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)和另一个平台(例如Windows)之间是否有共享和重新创建conda环境的好方法?


阅读 352

收藏
2020-12-20

共1个答案

小编典典

回答

假设您要确保通常关心的相同版本的软件包位于不同的平台上,并且不必关心整个依赖树中 所有 软件包的完全相同的版本,则给出此答案。
。如果您试图在整个依赖项树中安装所有软件包的完全相同版本,那么由于失败的可能性很大,因为某些conda软件包对osx / win /
linux的依赖项不同。例如,otrobopt的配方 将在Win vs. osx /
linux上安装不同的软件包,因此环境列表将有所不同。

建议:手动创建一个environment.yaml文件,并仅指定或固定您关心的依赖项。
让conda解算器完成其余的工作。可能值得注意的是conda- env(用于管理conda环境的工具)明确建议您“始终手动创建您的environment.yml文件”。

那你就做 conda env create --file environment.yml

看看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

如果您有更复杂的用例或其他问题,请更新原始问题,我将为您提供更多帮助。

2020-12-20