dkv*_*dkv 31 python package-managers updates anaconda conda
每当我跑步时conda install/remove/update <package>,它会告诉我这是"解决环境"一段时间,然后再告诉我要下载/安装/更新的内容列表.据推测它正在寻找依赖关系<package>,但为什么它在执行此操作后有时会删除包?例如,当我尝试安装Mayavi时,它决定需要删除Anaconda Navigator.
此外,它不提供仅执行建议操作的子集的选项.有没有办法指定我不想删除包?
zha*_*u33 25
您可以--debug向conda命令添加选项,并查看控制台(或终端)的输出.例如,键入conda update --debug numpy.从输出中,我们可以看到客户端repodata.json从通道列表请求并在Solving Environment步骤中本地进行一些计算.
Cor*_*mer 10
简短的答案是:用作mamba的直接替代品conda,它解决环境问题的速度要快得多,无需再等待几分钟。mamba已得到 conda 团队的正式认可。
Mamba 还允许您更精确地配置需要安装的软件包,并允许您固定版本,就像 conda 一样。有关更详细的比较conda,mamba请参阅此 Stackoverflow 答案:/sf/answers/4763025991/
长答案是:解决具有多个包的 conda 环境,每个包都有自己的依赖项,很快就会成为一个相当复杂的 SAT 问题(请参阅布尔可满足性问题和依赖地狱)
有了好的算法,即使是相当大的 SAT 问题也可以快速解决。mamba与用 C++ 编写并设计得很快的求解器相比,似乎conda的求解器性能不是很高。过去,当人们使用小型环境时,它运行得很好,但随着环境越来越大,conda 就开始陷入困境。
我大约一年前就做出了转变,而且我再也没有回头过。我正在工作的开源项目(Nextstrain)也已经开始mamba向conda新用户推荐。我还没有看到有人提倡反对使用mamba来代替conda.
作为“解决环境”步骤的旁注......
缺乏管理员权限可能会影响您是否或在哪里可以安装 python 包。
我观察到我的安装会挂在“解决环境”步骤上,并且在以非管理员身份登录时尝试安装软件包时永远不会通过。
在我卡住的机器上切换到管理员是可能的,所以我只是这样做并解决了问题。
当这不可能时,评论者解释了解决方法。