Python 单独解决,然后安装Conda环境

Python 单独解决,然后安装Conda环境,python,anaconda,conda,Python,Anaconda,Conda,我正在做一项任务,包括分析bioconda中每个包的最新版本。使用一个大型环境无法做到这一点,因为解决这样一个大型环境的依赖关系需要几天时间,甚至可能无法保证每个包的最新版本。出于这个原因,我正试图在自己的conda环境中分别安装每个包 为了加快速度,我正在尝试尽可能多的并行化。现在我知道在conda中,因为每个进程都需要对包缓存的写权限。然而,在我看来,创建和解决环境可以同时运行,我只需要串行安装软件包 现在,通过在每个进程中运行conda install my_package--json--

我正在做一项任务,包括分析bioconda中每个包的最新版本。使用一个大型环境无法做到这一点,因为解决这样一个大型环境的依赖关系需要几天时间,甚至可能无法保证每个包的最新版本。出于这个原因,我正试图在自己的conda环境中分别安装每个包

为了加快速度,我正在尝试尽可能多的并行化。现在我知道在conda中,因为每个进程都需要对包缓存的写权限。然而,在我看来,创建和解决环境可以同时运行,我只需要串行安装软件包

现在,通过在每个进程中运行
conda install my_package--json--dry run>plan.json
,我可以并行运行solve,它会输出一个漂亮的json文件,描述每个环境的解算。如果我有这个输出,我怎么能告诉conda“使用这个已经解决的执行计划安装软件包”?我设想的是像
conda安装--plan.json
,但这样的标志并不存在


如何将conda环境的解决和安装分开?或者,也许有另一种方法可以以不同的方式安装大量的conda环境?

至少从4.6版开始,conda已经公开了一个新版本。事实证明,这可以让你完全满足我的需要。它仍处于测试阶段,因此有了免责声明,这可能会在未来的conda发行版中中断,您目前可以在conda
4.8.x中执行此操作:

来自conda.api导入解算器
#解决环境问题,这可以同时进行
解算器=解算器(
dir,#康达环境的位置
[“bioconda”,“conda forge”],#可使用的conda频道列表
specs_to_add=[“bwa=0.7.17”],#要安装的软件包列表
)
transaction=solver.solve_for_transaction()
#这部分必须按顺序完成,因此请在此处使用multiprocessing.Lock
带锁:
事务。下载_和_extract()
transaction.execute()

这听起来像是一个问题。我还解释了更广泛的问题:同时创建大量conda环境并在其中安装软件包。如果有人有一个新的解决方案,绕过我目前的解决方案,他们可以免费提供一个。如果我不解释我当前的解决方案,我将忽略第2步:“描述您所尝试的”。但为什么您同时安装conda环境?现有安装是否相同?你怎么知道?并发性不是问题的核心。核心问题是“快速创建大量环境”。只是并发似乎是这个问题的自然解决方案。但是,是的,我可以把我的问题说得更清楚。我不认为你的具体问题有解决办法,但我同意@PeterWood的观点,你的根本问题可能有解决办法,这个问题仍然很模糊。我认为申请可以帮助我们提供更好的帮助。这太模糊了:我正在做一项任务,其中包括分析bioconda中每个包的最新版本。是的,这与我的建议是一致的,也就是说,如果要以编程方式解决一系列问题,那么最好直接使用Python包,即使它使用的是Conda内部结构。