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

pku*_*ar0 44 conda

有没有办法看到conda可用的软件包版本?我在jupyter中遇到错误但它之前正在工作.像蛋黄一样的东西?

The*_*oul 74

虽然这个问题已经得到了回答,但对于那些冒险在这里寻找答案的人来说,conda search返回的数据太多了,因为它显示了所有软件包的所有可用版本.

要搜索特定包,请使用:conda search -f <package_name>.例如,基于这个问题,要搜索所有版本的"jupyter"包,你会做:conda search -f jupyter.这只会返回有关名为"jupyter"的软件包的信息.

资料来源:https://conda.io/docs/commands/conda-search.html

  • 嗯,谢谢,但不确定“-f”,因为文档没有提到它。事实上 `diff &lt;(condaw search -f jupyter) &lt;(condaw search jupyter) |&amp; wc -l` 对于我的 conda 版本返回 `0`:conda 4.7.10 (6认同)
  • 是的,这应该是公认的答案! (3认同)

小智 22

您只需输入"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
Run Code Online (Sandbox Code Playgroud)


小智 13

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

conda search pandas
Run Code Online (Sandbox Code Playgroud)

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

conda install pandas=1.0.2
Run Code Online (Sandbox Code Playgroud)


Ehs*_*san 9

作为附录,您可以使用的输出conda search来微调需要安装的软件包的版本。例如,在'nasica88'的列表中,提供了三种Albaster 0.7.7版本以及不同的python版本。如果您需要使用Python 3.4的例如albaster 0.7.7,请按以下步骤安装:

$> conda install albaster=0.7.7=py34_0
Run Code Online (Sandbox Code Playgroud)

因此,第二个=标志是您的朋友在这里。


Sha*_*ari 7

列出anaconda计算机上安装的软件包

conda list
Run Code Online (Sandbox Code Playgroud)

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

conda search
Run Code Online (Sandbox Code Playgroud)


Ami*_*ati 7

要获取某个包的版本,您可以按grep如下方式过滤它:

$ conda list | grep tensorflow
Run Code Online (Sandbox Code Playgroud)

结果:

tensorflow                2.2.0           mkl_py36h5a57954_0  
tensorflow-base           2.2.0           mkl_py36hd506778_0  
tensorflow-estimator      2.2.0              pyh208ff02_0  
Run Code Online (Sandbox Code Playgroud)


Sul*_*yev 7

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

conda search -c conda-forge jupyterlab
Run Code Online (Sandbox Code Playgroud)

上面的内容还将在 中列出的渠道中进行搜索.condarc,因此为了避免这种情况(并更快地获得结果),可以使用--override-channels

conda search -c conda-forge --override-channels jupyterlab
Run Code Online (Sandbox Code Playgroud)

要仅显示特定版本之上的版本,请使用"{package}>={release}". 例如:

conda search -c conda-forge "jupyterlab>=3.5"
Run Code Online (Sandbox Code Playgroud)

请注意,某些 shell(尤其是 Windows)不喜欢单引号,因此使用双引号更安全。

最后,如果您打算在程序中使用输出,为了避免解析结果,可以使用--json

conda search -c conda-forge --override-channels --json "jupyterlab>=3.6"
Run Code Online (Sandbox Code Playgroud)

这将返回:

{
  "jupyterlab": [
    {
      "arch": null,
      "build": "pyhd8ed1ab_0",
      "build_number": 0,
      "channel": "https://conda.anaconda.org/conda-forge/noarch",
      "constrains": [],
      "depends": [
        "ipython",
        "jinja2 >=2.1",
        "jupyter_core",
        "jupyter_server >=1.16.0,<3",
        "jupyter_server_ydoc >=0.6.0,<0.7.0",
        "jupyter_ydoc >=0.2.2,<0.3",
        "jupyterlab_server >=2.19,<3",
        "nbclassic",
        "notebook <7",
        "packaging",
        "python >=3.7",
        "tomli",
        "tornado >=6.1.0"
      ],
      "fn": "jupyterlab-3.6.0-pyhd8ed1ab_0.conda",
      "license": "BSD-3-Clause",
      "license_family": "BSD",
      "md5": "1a9cd36192678fc2175145c9103b95ff",
      "name": "jupyterlab",
      "noarch": "python",
      "package_type": "noarch_python",
      "platform": null,
      "sha256": "66da471830af4f5a7baa6229240c9dfe0fcc43bf20cc576067dab742bf5ec02e",
      "size": 5827178,
      "subdir": "noarch",
      "timestamp": 1675350928375,
      "url": "https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.6.0-pyhd8ed1ab_0.conda",
      "version": "3.6.0"
    },
    {
      "arch": null,
      "build": "pyhd8ed1ab_0",
      "build_number": 0,
      "channel": "https://conda.anaconda.org/conda-forge/noarch",
      "constrains": [],
      "depends": [
        "ipython",
        "jinja2 >=2.1",
        "jupyter_core",
        "jupyter_server >=1.16.0,<3",
        "jupyter_server_ydoc >=0.6.0,<0.7.0",
        "jupyter_ydoc >=0.2.2,<0.3",
        "jupyterlab_server >=2.19,<3",
        "nbclassic",
        "notebook <7",
        "packaging",
        "python >=3.7",
        "tomli",
        "tornado >=6.1.0"
      ],
      "fn": "jupyterlab-3.6.1-pyhd8ed1ab_0.conda",
      "license": "BSD-3-Clause",
      "license_family": "BSD",
      "md5": "c7de31a5b57a9fc1aa4d3fb9993819c6",
      "name": "jupyterlab",
      "noarch": "python",
      "package_type": "noarch_python",
      "platform": null,
      "sha256": "8f7d234af44356633f8d418ed3001e814215ff09cedbec9583e3fb10fb7cc5e2",
      "size": 5354015,
      "subdir": "noarch",
      "timestamp": 1675434565845,
      "url": "https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.6.1-pyhd8ed1ab_0.conda",
      "version": "3.6.1"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)


mir*_*phd 5

要将冗长且加载缓慢的输出缩减conda search为适合您环境的(最新)版本,您可以使用MatchSpec过滤器,如conda Github 存储库中所述

例如,要从scikit-learn免费通道获取针对 Python 3.11 预编译的所有可用版本conda-forge,请在 Linux 终端中运行以下命令:

$ conda search "conda-forge/linux-64::scikit-learn=[build=py311*]"
Loading channels: done
# Name                       Version           Build  Channel
scikit-learn                   1.1.3 py311h3b52e38_1  conda-forge
scikit-learn                   1.2.0 py311h67c5ca5_0  conda-forge
scikit-learn                   1.2.1 py311h67c5ca5_0  conda-forge
scikit-learn                   1.2.2 py311h103fc68_1  conda-forge
scikit-learn                   1.2.2 py311h67c5ca5_0  conda-forge
scikit-learn                   1.2.2 py311hc009520_2  conda-forge
scikit-learn                   1.3.0 py311hc009520_0  conda-forge
scikit-learn                   1.3.1 py311hc009520_0  conda-forge
Run Code Online (Sandbox Code Playgroud)

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

$ conda search "conda-forge/linux-64::scikit-learn=[build=py311*]" | tail -n1 | awk '{print $2}'
1.3.1
Run Code Online (Sandbox Code Playgroud)

注意事项:

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

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

  • 对于某些软件包,可能需要较旧版本的Python(例如“已弃用”的版本最高为3.9 notebook)。