如何列出 conda 可用的软件包版本

Posted

技术标签:

【中文标题】如何列出 conda 可用的软件包版本【英文标题】:How to list package versions available with conda 【发布时间】:2017-08-30 13:11:24 【问题描述】:

有没有办法查看 conda 提供了哪些软件包版本?我在使用 jupyter 时遇到错误,但它之前可以正常工作。蛋黄之类的?

【问题讨论】:

【参考方案1】:

要搜索特定包,请使用:conda search -f <package_name>。例如,根据问题,要搜索“jupyter”包的所有版本,您将执行以下操作:conda search -f jupyter。这只会返回有关名为“jupyter”的包的信息。

来源:https://docs.conda.io/projects/conda/en/latest/commands/search.html

【讨论】:

嗯,谢谢,但不确定-f,因为文档没有提到它。事实上 diff <(condaw search -f jupyter) <(condaw search jupyter) |& wc -l 为我的 conda 版本返回 0: conda 4.7.10【参考方案2】:

您只需输入“conda search”,就会得到如下内容。

$ conda search 
Fetching package metadata .........
affine                       2.0.0                    py27_0  defaults
                             2.0.0                    py35_0  defaults
                             2.0.0                    py36_0  defaults
alabaster                    0.7.3                    py27_0  defaults
                             0.7.3                    py34_0  defaults
                             0.7.7                    py27_0  defaults
                             0.7.7                    py34_0  defaults
                             0.7.7                    py35_0  defaults
                             0.7.9                    py27_0  defaults

【讨论】:

【参考方案3】:

列出安装在你的 anaconda 机器上的软件包

conda list

这是列出所有可用于 anaconda 的包

conda search

【讨论】:

【参考方案4】:

作为附录,您可以使用conda search 的输出来微调您需要安装的软件包的版本。例如。在“nasica88”的列表中,有三个可用的 albaster 0.7.7 版本与不同的 python 版本。如果您需要,例如albaster 0.7.7 和 python 3.4,你安装它如下:

$> conda install albaster=0.7.7=py34_0

所以,第二个= 符号是你的朋友。

【讨论】:

-hconda search 输出并没有阐明两个= 标志的含义,因此我在***.com/q/57538225/257924 提出了新问题【参考方案5】:

如果您知道要安装的软件包的名称,请搜索它的所有可用版本。例如。对于包 pandas,您将执行以下操作

conda search pandas

然后安装你想要使用的版本

conda install pandas=1.0.2

【讨论】:

【参考方案6】:

要将冗长且缓慢加载的 conda search 输出缩减为仅适合您的环境的(最新)版本,您可以使用 MatchSpec 过滤器,如 here in conda Github repo 所记录的那样 p>

例如:

$ conda search "conda-forge::*[name=scikit-learn, subdir=linux-64, build=*py37*]" | tail -n5
scikit-learn                  0.21.2  py37h627018c_0  conda-forge
scikit-learn                  0.21.2  py37hcdab131_1  conda-forge
scikit-learn                  0.21.3  py37hcdab131_0  conda-forge
scikit-learn                    0.22  py37hcdab131_0  conda-forge
scikit-learn                    0.22  py37hcdab131_1  conda-forge

请注意,最新版本位于列表底部(它们按时间升序排序),因此可以使用tail -n1 找到,例如:

$ conda search "conda-forge::*[name=scikit-learn, subdir=linux-64, build=*py38*]" | tail -n1 | awk 'print $2'
$ 0.23.2

注意事项:

使用version 缩小主要和/或次要版本是有风险的,因为version=1.*.* 会错过诸如1.11 之类的版本,

将架构(使用subdir 键)设置为linux-64 可能会错过一些有用的linux 64 位软件包,如果它们存储在noarch 文件夹中而不是linux-64

【讨论】:

【参考方案7】:

要获取特定包的版本,您可以通过grep 过滤它:喜欢:

$ conda list | grep tensorflow

结果:

tensorflow                2.2.0           mkl_py36h5a57954_0  
tensorflow-base           2.2.0           mkl_py36hd506778_0  
tensorflow-estimator      2.2.0              pyh208ff02_0  

【讨论】:

【参考方案8】:

我在 conda 中安装了 pip,所以 pip list 也可以工作

【讨论】:

以上是关于如何列出 conda 可用的软件包版本的主要内容,如果未能解决你的问题,请参考以下文章

简明conda使用指南

conda初识

如何在Conda中安装R库

如何卸载软件包?

conda如何在continuum.io中安装选择包?

Meteor:如何列出已安装的软件包