【问题标题】:portable conda environment as a binary tarball作为二进制 tarball 的便携式 conda 环境
【发布时间】:2018-10-16 21:05:10
【问题描述】:

我正在尝试构建一个可移植的conda 环境。 所以我们可以打包并在以后分发到另一台服务器或许多服务器。 我们构建环境的地方和稍后将要部署的地方是两个不同的地方。 我注意到conda createconda install 都将环境位置硬编码到environment_path\bin 下所有已安装脚本的shebang - 有没有办法覆盖它?

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

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

免责声明:我知道使用导出的 yaml 文件重建环境的选项,但这不是我们在这里看到的。我们想让 conda 环境作为二进制 tarball 可再分发/可移植 - 部署位置是已知的,但它与环境构建位置不同。

【问题讨论】:

    标签: python anaconda conda


    【解决方案1】:

    我刚刚发现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 环境。 t 有大量的依赖项。

    【讨论】:

    • 我正在做类似的实现,想知道到目前为止您是否发现了任何问题?如果有,请分享。
    【解决方案2】:

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

    【讨论】:

    • 您能否介绍一下“anaconda 安装程序脚本”是什么?看来我还必须部署miniconda 之类的东西才能让conda 在那里可用?该服务器之前可能没有任何 anaconda/conda/python 跟踪,所以希望我们可以使用这个便携式 conda tarbal,解压缩它,它本身就是整个 python 环境。谢谢。
    • conda.io/miniconda.html 这是一个独立的安装程序。您可以轻松地设置一个 shell 脚本来完成这一切。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 2011-01-12
    相关资源
    最近更新 更多