有一种快速的方法可以知道Anaconda中是否安装了软件包

时间:2020-09-25 17:23:03

标签: python installation anaconda package conda

在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似乎对已安装的软件包有所帮助,但这会中断新安装吗?)。

谢谢!

1 个答案:

答案 0 :(得分:0)

Merv mentions in a comment:

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