创建 conda 环境:“发现冲突!” 当解决环境和“寻找最短冲突路径”永远运行时

我获得了一个environment.ubuntu.yml能够创建 conda 环境的文件。但是,运行conda create env --file environment.ubuntu.yml我得到以下输出:


conda env create --file environment.ubuntu.yml

Collecting package metadata (repodata.json): done

Solving environment: - 

Found conflicts! Looking for incompatible packages.

This can take several minutes.  Press CTRL-C to abort.

Examining fontconfig:   5%|▉                 | 10/202 [00:00<00:00, 5393.91it/ ]

Comparing specs that have this dependency:   0%|         | 0/12 [00:00<?, ?it/s]

Finding shortest confli|  path for fontconfig==2.13.1=he4413a7_1000:  12%|▏| 1/8

Finding shortest conflict path for fontconfig==2.13.1=he4413a7_1000:  25%|▎| 2/8

Finding shortest conflict pa/  for fontconfig[version='>=2.13.0,<3.0a0']:  25%|

Finding shortest conflict path for fontconfig[version='>=2.13.0,<3.0a0']:  38%|

Finding shortest conf- ct path for fontconfig[version='>=2.11.1']:  38%|▍| 3/8 [

Finding shortest conflict path for fontconfig[version='>=2.11.1']:  50%|▌| 4/8 [

Finding shortest conflict pa|  for fontconfig[version='>=2.12.4,<3.0a0']:  50%|

...

这种Finding shortest conflict path情况持续了很长时间 - 显然它正在尝试解决一些依赖问题。运行 2 小时尚不清楚它是否会停止。


我的问题是:这里发生了什么,我可以以某种方式手动加速这个过程,例如通过删除不必要的依赖项?由于我没有创建环境,所以我不知道哪些是真正必要的。


我好奇的原因是因为它正在检查冲突路径,比如当fontconfig[version='>=2.12.6,<3.0a0']我安装它时dependencies2.13.12.13.1


请在 .yml 文件下方查找以供参考。


繁花不似锦
浏览 779回答 4
4回答

慕斯709654

此错误和随后的行为很可能来自Anaconda 错误,该错误有时会导致本地环境不一致。截至 2020 年 1 月 26 日,该错误尚未解决。对我来说,同样的问题在 Mac 上也很明显。

翻阅古今

一般来说,这个问题的答案是你应该从头开始创建你的 .yml,只有所需的通道和约束。您应该放宽版本限制,使它们看起来像 1.19 而不是 1.19.10然而,尽管遵循了这个建议,我现在几乎完全有你的问题。它在 fontconfig 上花了很多时间,我在放弃之前把它留了一夜。我的规格很简单:channels:&nbsp; - conda-forge&nbsp; - usgs-astrogeology&nbsp; - defaultsdependencies:&nbsp; - python=3.6&nbsp; - isis3&nbsp; - gdal=2.3当我弄清楚时,我会编辑它。编辑:这里正在讨论这个问题(特定于我试图设置的软件,可能对其他人没有帮助)https://github.com/USGS-Astrogeology/ISIS3/issues/3570

肥皂起泡泡

对我来说,将以下内容添加到 yaml 文件中有效:channels: &nbsp;&nbsp;-&nbsp;conda-forge &nbsp;&nbsp;-&nbsp;defaults &nbsp;&nbsp;-&nbsp;conda-forge/label/broken

GCT1015

就我而言,我已经替换了一些构建版本(...=he4413a7_1000部分),因为原始文件中的版本已重新标记为brokenon&nbsp;conda-forge。但是,即使这些依赖项的版本号没有改变,它们的子依赖项也发生了变化,从而导致了所有这些冲突。底线是:不要手动处理依赖关系。我通过保留原始构建版本规范并添加conda-forge/labels/broken到文件的channels一部分来解决了这个问题.yml。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python