如何解决使用 Anaconda 在 Mac OS X 11.2.2 上安装 PyGMO 期间的冲突
我正在尝试在 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,<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 并设置了附加频道及其优先级。我也检查了 this command 但这本质上是一样的。我还尝试了 PyPI 中的安装命令。我也试过这个hint
解决方法
有两种可能的状态:
-
Conda 求解器是正确的。您在环境中的先前包限制与安装
pygmo
不兼容。在这种情况下,您要么需要追踪冲突的约束并尝试手动放松它们(不推荐用于 Anaconda base),或者您需要创建一个新环境:conda create -n pygmo_env -c conda-forge pygmo
在其中包含您需要的任何其他软件包。例如,
ipykernel
如果您打算将其用作 Jupyter 内核。 -
Conda 求解器出问题了。求解器报告了不应该解决的问题。这种情况会发生,尤其是在混合通道(defaults 和 conda-forge)时发生。许多人发现 Mamba(Conda 的直接替代品)更可靠(而且绝对更快!)。
conda install conda-forge::mamba mamba install -c conda-forge pygmo
不幸的是,很难说它处于哪个状态。我们中的许多人一直在试图对约束报告进行分类的过程中陷入困境,有时确实找不到合理的冲突。出于实用目的,我建议您尝试使用 mamba
。如果它也失败了,那么至少您将有充分的证据证明您处于 (1) 状态。
附加评论
尽管有关于从 Anaconda Cloud 中的任何渠道安装的乐观文档,但 Anaconda 发行版受到高度限制 - 即包含太多包 - 并且仅测试来自 defaults 渠道的包的共同安装。此外,Conda Forge 和 Anaconda 具有不同的构建堆栈,因此即使求解器允许共同安装,也可能存在运行时包不兼容的情况。
通常,我建议自由使用环境创建。旨在为单独的任务/项目提供单独的环境。如果您计划经常使用的不仅仅是普通的 Anaconda 发行版,请考虑 Miniforge 或其变体之一。始终可以使用 conda create -n foo -c defaults anaconda
创建 Anaconda 环境。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。