包搜索和安装规范#
Conda 支持以下用于 conda search
和 conda install
的规范。
包搜索#
可以通过多种方式完成针对特定包或包集的 conda search
。本节包含有关标准规范和键值对使用情况的信息。
标准规范#
- channel
(可选) 可以是通道名称或 URL。通道名称可以包含字母、数字、破折号和下划线。
- subdir
(可选) 通道的子目录。许多子目录用于体系结构,但这不是必需的。必须有通道,并且在子目录之前有一个反斜杠。例如:
main/noarch
- name
(必需) 包名称。可以包含
*
通配符。例如,*py*
返回所有名称中包含 "py" 的包,例如 "numpy"、"pytorch"、"python" 等。- version
(可选) 包版本。可以包含
*
通配符或单引号中的版本范围。例如:numpy=1.17.*
返回所有包含 "1.17." 的版本号的 numpy 包,而numpy>1.17,<1.19.2
返回所有版本大于 1.17 小于 1.19.2 的 numpy 包。- build
(可选) 包构建名称。可以包含
*
通配符。例如,numpy 1.17.3 py38*
返回所有构建名称包含文本 "py38" 的版本 1.17.3 numpy 包。
键值对#
包搜索也可以使用所谓的 "键值对表示法" 来执行,该表示法与 标准规范 示例图像具有不同的规则。下面的搜索将返回与标准规范相同的包列表。
$ conda search "numpy[channel=conda-forge, subdir=linux-64, version=1.17.*, build=py38*]"
此表示法支持以下键值对
- build # validated via GlobStrMatch
- build_number # validated via BuildNumberMatch
- channel # validated via ChannelMatch
- features # validated via FeatureMatch
- fn # validated via ExactStrMatch
- license # validated via CaseInsensitiveStrMatch
- license_family # validated via CaseInsensitiveStrMatch
- md5 # validated via ExactStrMatch
- name # validated via GlobLowerStrMatch
- sha256 # validated via ExactStrMatch
- subdir # validated via ExactStrMatch
- track_features # validated via FeatureMatch
- url # validated via ExactStrMatch
- version # validated via VersionSpec
键值对表示法可以与标准表示法同时使用。
$ conda search "conda-forge::numpy=1.17.3[subdir=linux-64, build=py38*]"
警告
使用键值对表示法的任何搜索值将覆盖搜索字符串中其余值。例如,conda search numpy 1.17.3[version=1.19.2]
将返回版本号为 1.19.2
的包。
包安装#
安装包时,conda 建议尽可能具体。在安装过程中使用 *
通配符和版本范围很可能会导致冲突。
但是,在安装命令中谨慎使用 *
通配符仍然很有帮助。
使用通配符安装#
假设您正在进行一个需要包版本 2.3 的项目。如果您升级到 2.4 或 3.0,您的项目将中断。您还在使用环境文件来创建您的环境。
在版本 2.3.1
中,2
是主版本,3
是次版本,而 1
是修补程序。修补程序通常包含错误修复,因此,如果您想将版本 2.3
保留在您的环境中,而不更新到 2.4
或 3.0
,但又想利用任何错误修复,那么在您的环境文件中使用 2.3.*
将对您有所帮助。
具体安装示例#
让我们以 包搜索 部分的搜索为例。
$ conda search "conda-forge/linux-64::numpy 1.17.* py38*"
这将返回以下内容
Loading channels: done
# Name Version Build Channel
numpy 1.17.3 py38h95a1406_0 conda-forge
numpy 1.17.5 py38h18fd61f_1 conda-forge
numpy 1.17.5 py38h95a1406_0 conda-forge
然后,您可以根据需要选择特定的版本和构建,并相应地编辑您的 conda install
命令。
$ conda install "conda-forge/linux-64::numpy 1.17.5 py38h95a1406_0"