Conda:环境 yaml 文件的语法与 venv 要求

Conda: syntax of the environment yaml file vs. venv requirements

我有一个用于为 pip 创建虚拟环境的 venv 要求文本文件。

我现在想根据 pip 的需求文件在 conda 中设置一个环境。 但是,有几行我不知道如何从 pip 语法“移植”到 conda 语法。 如果我采取这样的行:

scipy>=1.4.1

并以这种方式将其复制到 conda yaml 文件中:

dependencies:
    - scipy>=1.4.1

它们工作正常。 但是在需求文件中有这样的行:

openexr==1.3.2; platform_system == 'Linux'
dataclasses>=0.8; python_version == '3.6'

如果我尝试以相同的方式复制它们,它们会出错。

CondaValueError: invalid package specification: openexr==1.3.2; platform_system == 'Linux'

“翻译”这些行的正确语法是什么?

Conda 已经知道您的平台,因此第一行仅保留 openexr 规范。对于第二个,Conda 管理 Python,因此 Python 版本规范可以显式包含在单独的行中。总而言之,类似于

dependencies:
  - python=3.6
  - scipy>=1.4.1
  - openexpr=1.3.2
  - dataclasses>=0.8