可重新部署的conda环境

时间:2016-09-08 13:57:11

标签: python conda

我想在笔记本电脑上创建一个可以部署到我的集群的conda环境。为此,我想要两件事:

  1. 能够为不同的架构创建conda环境
  2. 为了能够压缩环境,将其移动到其他文件系统中的其他位置,解压缩并运行/path/to/myenv/bin/python ...
  3. 我希望conda-create中有一些选项来指定如下所示的体系结构:

    conda create --arch=linux-64 ...
    

    对于可重新部署,我尝试使用--copy选项来避免硬链接,并且此似乎可以正常工作,至少在简单情况下如此。是否存在这种方法失败的案例或常见软件包?我还可以做其他事情来提高效率,或者当包依赖于环境之外的文件时发出警告吗?

1 个答案:

答案 0 :(得分:2)

目前,conda没有直接的方法来为任意架构创建环境。我也不确定它到底有多可行。对于绝大多数软件包来说,它只是一个元数据,并且完全可行。但是,对于二进制包,我们(有时)必须替换嵌入在二进制文件中的前缀。由于它是用Python(https://github.com/conda/conda/blob/9c1750349b4c1d66a9caf95d21a9edf90e1eb9cf/conda/install.py#L250-L271)完成的,我认为它会起作用 - 但如果有任何机会不能理解二进制文件(例如Mac创建Linux环境),这可能会破坏。 / p>

我们当然可以破解PoC,看看它是如何工作的。

除了一些真正的核心系统库(例如glibc)之外,软件包确实不应该依赖于外部文件。在构建时警告人员会是一件好事,但我认为这不是安装时间问题。