gpt4 book ai didi

python - 除非必要,如何避免使用 conda-forge 包?

转载 作者:行者123 更新时间:2023-12-02 19:01:41 26 4
gpt4 key购买 nike

从 conda-forge 安装单个软件包时,我遇到了 conda 的一个小但烦人的问题。通常我会运行这样的东西:

conda install -c conda-forge somepackage

这具有使用 conda-forge 频繁更新其他包的效果:几乎总是 ca-certificates、certifi 和 openssl;有时还有主要的软件包,如 python、numpy 等(全部来自 conda-forge)。我怀疑这些更新并不是绝对必要的;这些包使用一些逻辑按照“为了安装最新版本的 somepackage 我需要 python>=3.8 但当前的 python 是 3.7;我可以使用 conda-forge,所以我会得到最新的 python来自 conda-forge,它比默认版本更新。

我想要完成的是:安装 任何 版本的 somepackage(不一定是最新的),同时从 conda-forge 安装尽可能少。特别是,如果在保留已安装的软件包和升级之间做出选择,我总是想保留;如果在默认 channel 和 conda-forge 之间有一个选择,我总是想要默认(即使这些选择导致我试图安装的新包的旧版本和/或它们的新依赖项结束 - 但不是如果它们导致无法安装)。

我该如何实现?

最佳答案

一般来说,我赞成@jakub's answer中的结论: 定义合理的全局 channel 优先级,并尽量避免通过 --channel|-c 参数使用ad hoc 规范。

还有一些额外的选项可能值得指出:

  1. 指定特定包应来自给定 channel

     conda install conda-forge::somepackage

    这不会改变 channel 优先级。

  2. install 命令中明确列出 channel 优先级:

     conda install -c defaults -c conda-forge somepackage

    默认值放在首位。

  3. 通过 YAML 文件定义和操作环境。 YAML 包含一个 channel 部分,因此您可以明确说明优先级。如果您在环境中需要一个新包,可以将其添加到 YAML - 比方说 env.yaml - 并且可以使用

    将该编辑转移到环境中
     conda env update -f env.yaml

关于python - 除非必要,如何避免使用 conda-forge 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65483245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com