作为二进制tarb的便携式conda环境

2024-10-01 09:16:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

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


Tags: path方法代码服务器脚本编码binenvironment
2条回答

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

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

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

conda-pack is a command line tool for creating relocatable conda environments. This is useful for deploying code in a consistent environment, potentially in a location where python/conda isn't already installed.

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

用例

  • 将应用程序与其环境绑定以进行部署
  • 打包conda环境以便在上部署时与Apache Spark一起使用 纱线(请参阅此处了解更多信息)。在
  • 打包conda环境以便在Apache YARN上部署。一种方法是使用Skein。在
  • 归档处于正常工作状态的环境。在

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

相关问题 更多 >