便携式conda环境作为二进制压缩包

Tag*_*gar 6 python anaconda conda

我正在尝试构建一个便携式conda环境。因此,我们可以打包并将其分发到其他服务器或以后的许多服务器。我们在其中构建环境以及稍后将其部署的地方是两个不同的地方。我注意到,conda createconda install两个硬编码环境位置到下所有的家当安装脚本environment_path\bin-有没有一种方法可以重写?

我们必须使用部署位置,而不必在shebang bin/脚本中为该环境构建位置。

还创建了https://github.com/conda/conda/issues/7861

免责声明:我知道使用导出的yaml文件重建环境的选项,但这不是我们在这里查找的内容。我们希望使conda环境可以作为二进制tarball重新分发/移植-部署位置已知,但与环境构建位置不同。

Tag*_*gar 5

我只是发现conda-pack似乎直接解决了这个问题

https://github.com/conda/conda-pack

conda-pack是用于创建可重定位conda环境的命令行工具。这对于在一致的环境(可能尚未安装python / conda的位置)中部署代码很有用。

文档:https : //conda.github.io/conda-pack/

用例

  • 将应用程序与其部署环境捆绑在一起
  • 打包在YARN上部署时可与Apache Spark一起使用的conda环境(有关更多信息,请参见此处)。
  • 打包一个conda环境以在Apache YARN上进行部署。一种方法是使用Skein。
  • 在运行状态下归档环境

更新:我们的其他PySpark应用程序正在conda所有Hadoop节点(NFS挂载)上可用的位置上使用环境,它对于某些没有大量依赖关系的conda环境非常有效。