1

我正在尝试在 Mac OS X 11.2.2 上安装 PyGMO(使用我重新安装的 Anaconda,因此 Anaconda Navigator 现在已升级到 2.0.1。)

安装开始后,它会收集包元数据并报告它发现包冲突。如何解决冲突以便可以运行 PyGMO?

这是开始:

$ conda install -c conda-forge pygmo
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: \ 
Found conflicts! Looking for incompatible packages.

几个小时后,终端返回一份关于冲突的长篇报告并停在那里。这是一个有代表性的输出:

Package selectors2 conflicts for:
wurlitzer -> selectors2
spyder-kernels -> wurlitzer[version='>=1.0.3'] -> selectors2

Package mpmath conflicts for:
anaconda==2020.07=py38_0 -> sympy==1.6.1=py38_0 -> mpmath[version='>=0.19']
sympy -> mpmath[version='>=0.19']
anaconda==2020.07=py38_0 -> mpmath==1.1.0=py38_0

Package anyio conflicts for:
jupyterlab -> jupyter_server[version='>=1.4,<2'] -> anyio[version='>=2.0.2|>=2.0.2,<3']
jupyterlab_server -> jupyter_server[version='>=1.4,<2'] -> anyio[version='>=2.0.2|>=2.0.2,<3']

Package py-lief conflicts for:
conda-build -> py-lief
anaconda==2020.07=py38_0 -> py-lief==0.10.1=py38haf313ee_0
Note that strict channel priority may have removed packages required for satisfiability.

我遵循官方安装指南并设置附加频道及其优先级。我也检查了这个命令,但这本质上是一样的。我还尝试了PyPI的安装命令。我也尝试了这个提示

4

1 回答 1

0

有两种可能的状态:

  1. Conda 求解器是正确的。您在环境中的先前包限制与安装pygmo. 在这种情况下,您要么需要追踪冲突的约束并尝试手动放松它们(不推荐用于 Anaconda base),要么您需要创建一个新环境:

     conda create -n pygmo_env -c conda-forge pygmo
    

    在其中包括您需要的任何其他软件包。例如,ipykernel如果您打算将其用作 Jupyter 内核。

  2. Conda 求解器出现问题。求解器正在报告真正不应该解决的问题。这种情况会发生,尤其是在混合通道(默认值conda-forge)时发生。许多人发现Mamba是 Conda 的替代品,更可靠(而且肯定更快!)。

    conda install conda-forge::mamba
    mamba install -c conda-forge pygmo
    

不幸的是,很难判断它处于哪个状态。我们中的许多人一直在试图整理约束报告的兔子洞,有时真的找不到合理的冲突。出于实际目的,我建议尝试mamba. 如果它也失败了,那么至少您将有充分的证据证明您处于状态(1)


附加评论

尽管有关于从 Anaconda Cloud 中的任何渠道安装的乐观文档,但 Anaconda 发行版受到高度限制 - 即,有太多的包 - 并且只测试从默认渠道共同安装包的情况。此外,Conda Forge 和 Anaconda 具有不同的构建堆栈,因此即使求解器允许共同安装,也可能存在运行时包不兼容问题。

一般来说,我建议自由地使用环境创建。旨在为不同的任务/项目提供不同的环境。如果您计划经常使用的不仅仅是普通的 Anaconda 发行版,请考虑使用 Miniforge或其变体之一。人们总是可以使用conda create -n foo -c defaults anaconda.

于 2021-05-11T00:21:30.443 回答