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

时间:2018-10-16 21:05:10

标签: python anaconda conda

我正在尝试构建一个可移植的conda环境。 因此,我们可以打包并将其分发到其他服务器或以后的许多服务器。 我们在其中构建环境以及稍后将其部署的地方是两个不同的地方。 我注意到conda createconda install都位于environment_path\bin下所有已安装脚本的硬编码环境位置中,是否可以替代?

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

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

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

2 个答案:

答案 0 :(得分:2)

我刚刚发现conda-pack似乎可以直接解决此问题

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

  

conda-pack是用于创建可重定位conda的命令行工具   环境。这对于以一致的方式部署代码很有用   环境,可能位于python / conda不在的位置   已经安装

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

用例

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

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

答案 1 :(得分:1)

包裹已保存在<conda_root>/pkgs中。您可以将这些文件(以及anaconda安装程序脚本)复制到部署服务器,安装anaconda,然后运行conda install <path_to_pkgs>/*.bz2