【发布时间】: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