【发布时间】:2020-08-10 19:28:38
【问题描述】:
我正在执行一项任务,该任务涉及分析 bioconda 中每个软件包的最新版本。这不能使用一个大型环境来完成,因为解决这样一个大型环境的依赖关系需要几天时间,甚至可能无法保证每个包的最新版本。出于这个原因,我尝试将每个包分别安装在其自己的 conda 环境中。
为了加快速度,我试图尽可能多地并行化。现在我知道 package installations can't be run concurrently 在 conda 中,因为每个进程都需要对包缓存的写权限。但是,在我看来,创建然后解决环境可以同时运行,我只需要串行安装包。
现在,我可以通过在每个进程中运行 conda install my_package --json --dry-run > plan.json 来并行运行求解,这会输出一个很好的 JSON 文件,描述每个环境的求解。如果我有这个输出,我怎么能告诉 conda“使用这个已经解决的执行计划安装包”?我在设想conda install --plan plan.json 之类的东西,但这样的标志并不存在。
如何分离conda环境的解决和安装?或者也许还有另一种方式以不同的方式安装大量 conda 环境?
【问题讨论】:
-
这读起来像XY problem。
-
我还解释了更广泛的问题:同时创建大量 conda 环境并将软件包安装到其中。如果有人有绕过我当前解决方案的新颖解决方案,他们可以免费提供。如果我不解释我当前的解决方案,我会忽略第 2 步:“描述你尝试过的方法”。
-
但是你为什么要同时安装 conda 环境呢?现有的安装是否相同?你怎么知道的?
-
并发不是问题的核心。核心问题是“快速制作大量环境”。只是并发似乎是这个问题的自然解决方案。但是,是的,我可以让我的问题更清楚。
-
我认为没有针对您的具体问题的解决方案,但我同意@PeterWood 的观点,即您的根本问题可能有解决方案,这在问题中仍然很模糊。我认为申请Five whys 可以帮助我们提供更好的帮助。这太模糊了:我正在处理一项涉及分析 bioconda 中每个软件包的最新版本的任务。