【问题标题】:There is a quick way to know if a package is installed in Anaconda有一种快速方法可以知道 Anaconda 中是否安装了软件包
【发布时间】:2021-01-12 01:29:47
【问题描述】:

在 Anaconda 中安装一个包至少需要 15 秒,如果包已经安装,解析环境仍然需要时间:

time /opt/Anaconda3-2019.10/bin/conda install --override-channels --quiet -y plotly-orca
Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... done

# All requested packages already installed.


real    0m15.067s
user    0m13.533s
sys     0m0.401s

但是检查是否安装了包(无论版本)只需要 2 秒:

time /opt/Anaconda3-2019.10/bin/conda list --quiet plotly-orca
# packages in environment at /opt/Anaconda3-2019.10:
#
# Name                    Version                   Build  Channel
plotly-orca               1.3.1                         1    plotly

real    0m2.303s
user    0m2.227s
sys     0m0.064s

我知道我可以围绕这一点编写一些 Shell 脚本,但有更好的方法来安装一个包(仅当它不存在时)?

conda 是否有可用于检查的 API(类似于 pip)?

我查看了 conda install --help 上的所有选项,没有发现我可以使用的东西(--satisfied-skip-solve 似乎对已安装的软件包有所帮助,但它会破坏新安装吗?)。

谢谢!

【问题讨论】:

  • 是的,-S|--satisfied-skip-solve 解决了这个问题。你可以做空运行 (-d) 来测试它对新包的行为 - 对我来说很好。好像你已经回答了你自己的问题。我会注意到您可能还想包含一个 --update-specs 标志:这告诉 Conda 您明确希望将来环境中的包。这解决了仅作为依赖项安装的包的情况,并且通常会在删除依赖包时被删除。
  • 你好,merv,--satisfied-skip-solve 帮了大忙。这是正确的答案。

标签: python installation anaconda package conda


【解决方案1】:

作为Merv mentions in a comment:

是的,-S|--satisfied-skip-solve 解决了这个问题。你可以做空运行 (-d) 来测试它对新包的行为——对我来说很好。好像你已经回答了你自己的问题。我会注意到您可能还想包含一个 --update-specs 标志:这告诉 Conda 您明确希望将来环境中的包。这解决了仅作为依赖项安装的包的情况,并且通常会在删除依赖包时被删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    相关资源
    最近更新 更多