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 许可协议
给出此答案的假设是您希望确保您通常关心的相同版本的包位于不同的平台上,并且您不关心整个依赖树中 所有 包的完全相同的版本.如果您尝试在整个依赖关系树中安装完全相同版本的所有包,那么很可能会失败,因为某些 conda 包对 osx/win/linux 具有不同的依赖关系。例如, otrobopt 的配方 将在 Win 和 osx/linux 上安装不同的包,因此环境列表会不同。
建议:手动创建一个
environment.yaml
文件并指定或仅固定您关心的依赖项。 让 conda 求解器完成剩下的工作。可能值得注意的是conda-env
(用于管理 conda 环境的工具)明确建议您 “始终手动创建environment.yml
文件。”然后你就做
conda env create --file environment.yml
查看 conda-env 的自述文件。
它们可以很简单:
或更复杂的地方,您固定依赖项并指定要从中安装的 anaconda.org 频道:
无论哪种情况,您都可以使用
conda env create --file environment.yaml
创建环境。注意:如果您使用的是旧版本的 conda,则可能需要使用
.*
作为版本后缀。