如何列出可与 conda 软件包版本

有没有一种方法可以看到什么软件包版本可以使用 conda?我得到一个错误的木星,但它以前工作。蛋黄之类的?

185564 次浏览

你只需要输入“ 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

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

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

作为补充,您可以使用 conda search的输出来微调您需要安装的软件包的版本。例如,在“ nasica88”的列表中,有三个阿尔巴斯特0.7.7版本可以使用不同的 python 版本。如果你需要使用 python 3.4的阿尔巴斯特0.7.7,你可以这样安装:

$> conda install albaster=0.7.7=py34_0

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

列出安装在蟒蛇计算机上的软件包

conda list

这是列出所有可用于蟒蛇的软件包

conda search

为了将长时间缓慢加载的 conda search输出削减到适合您的环境的(最新)版本,您可以使用 MatchSpec过滤器,如文档 在 Conda Github 回收站所示

例如:

$ 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文件夹中

如果您知道要安装的软件包的名称,请搜索该软件包的所有可用版本。对于包装熊猫,你要做到以下几点

conda search pandas

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

conda install pandas=1.0.2

要获得某个软件包的版本,你可以通过 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

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

若要控制特定的通道,请使用 -c选项。例如:

conda search -c conda-forge jupyterlab