如何跨平台共享 conda 环境

新手上路,请多包涵

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环境?

原文由 user3731622 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

给出此答案的假设是您希望确保您通常关心的相同版本的包位于不同的平台上,并且您不关心整个依赖树中 所有 包的完全相同的版本.如果您尝试在整个依赖关系树中安装完全相同版本的所有包,那么很可能会失败,因为某些 conda 包对 osx/win/linux 具有不同的依赖关系。例如, otrobopt 的配方 将在 Win 和 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 创建环境。

注意:如果您使用的是旧版本的 conda,则可能需要使用 .* 作为版本后缀。

原文由 Eric Dill 发布,翻译遵循 CC BY-SA 4.0 许可协议

虽然可以手动创建 environment.yml 文件,但您可以使用 conda env export --from-history 标志确保您的环境跨平台工作。

这将只包括您明确要求的包,而不是包括您环境中的每个包。

例如,如果您创建一个环境并安装一个包 conda install python=3.8 numpy ,它将安装许多其他依赖项以及 python 和 numpy。

如果您随后运行 conda env export > environment.yml ,您的 environment.yml 文件将包含 conda 自动为您安装的所有附加依赖项。

另一方面,运行 conda env export --from-history python=3.8 numpy 创建 environment.yml

答案改编自 文档

原文由 codeananda 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏