gpt4 book ai didi

python - 单独解决,稍后再安装Conda环境

转载 作者:行者123 更新时间:2023-12-04 10:08:27 26 4
gpt4 key购买 nike

我正在执行一项任务,涉及分析 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 环境?

最佳答案

至少从 4.6 版开始,Conda 公开了一个 beta API to the Solver class .事实证明,这可以让您完全按照我的需要进行操作。它仍处于测试阶段,因此免责声明这可能会在未来的 conda 版本中中断,您目前可以在 Conda 4.8.x 中执行此操作:

from conda.api import Solver

# Solve the environment, which can be done concurrently
solver = Solver(
dir, # The location of the conda environment
["bioconda", "conda-forge"], # A list of conda channels to use
specs_to_add=["bwa=0.7.17"], # A list of packages to install
)
transaction = solver.solve_for_transaction()

# This part must be done serially, so use a multiprocessing.Lock here
with lock:
transaction.download_and_extract()
transaction.execute()

关于python - 单独解决,稍后再安装Conda环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61455551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com