在 Mac OS X 11.2.2 与 Anaconda 上安装 PyGMO 时发生冲突

Conflicts during PyGMO installation on Mac OS X 11.2.2 with Anaconda

我正在尝试在 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.

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

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.

我也关注了the official installation guidelines and set the additional channel and its priority. I also checked this command but that is essentially the same thing. I also tried the installation commands from PyPI. And I tried this

有两种可能的状态:

  1. Conda 求解器是正确的。 您之前在环境中的包约束与安装不兼容 pygmo。在那种情况下,您要么需要追踪冲突的约束并尝试手动松开它们(不建议 Anaconda base),或者您需要创建一个新环境:

     conda create -n pygmo_env -c conda-forge pygmo
    

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

  2. Conda 解算器出问题了。 解算器在不应该报告问题的情况下解决了问题。这种情况会发生,尤其是在混合通道时(defaultsconda-forge)。许多人发现 Mamba,Conda 的直接替代品,更可靠(而且绝对更快!)。

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

不幸的是,很难说出它处于哪种状态。我们中的许多人都陷入了试图整理约束报告的困境,有时确实找不到合理的冲突。出于实际目的,我建议尝试 mamba。如果它也失败了,那么至少你会有很好的证据表明你处于 (1).

状态

附加评论

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

一般来说,我建议自由使用环境创建。旨在为单独的 tasks/projects 提供单独的环境。如果您计划经常使用超过香草 Anaconda 发行版,请考虑 Miniforge 或其变体之一。人们总是可以用 conda create -n foo -c defaults anaconda.

创建一个 Anaconda 环境