设置#
此页面包含 conda 中许多重要设置的概述,并在可能的情况下提供示例。
通用配置#
channels
: 通道位置#
在 .condarc
文件中列出通道位置会覆盖 conda 默认设置,导致 conda 仅按给定的顺序搜索此处列出的通道。
使用 defaults
自动包含所有默认通道。非 URL 通道被解释为 Anaconda.org 用户或组织名称。您可以通过修改 channel_alias: 设置通道别名 中描述的 channel_alias
来更改此设置。默认值仅为 defaults
。
示例
channels:
- <anaconda_dot_org_username>
- http://some.custom/channel
- file:///some/local/directory
- defaults
要为单个环境选择通道,请将 .condarc
文件放在该环境的根目录中(或在使用 conda config
时使用 --env
选项)。
示例: 如果您已在家目录中安装了带有 Python 3 的 Miniconda,并且环境名为“flowers”,则路径可能是
~/miniconda3/envs/flowers/.condarc
default_channels
:默认通道#
通常,defaults 通道指向 repo.anaconda.com 仓库中的多个通道,但如果定义了 default_channels
,它将设置新的默认通道列表。这对于 airgapped 和企业安装尤其有用。
为了确保所有用户仅从本地部署的仓库拉取包,管理员可以同时设置 通道别名 和 default_channels
。
default_channels:
- http://some.custom/channel
- file:///some/local/directory
channel_settings
:各个通道的额外设置#
在 23.3.0 版本中添加。
使用 channel_settings
,可以为各个通道添加额外的配置选项。当前,这用于通过 身份验证处理程序 插件钩子为 conda 注册额外的身份验证处理程序,但将来也可能适应更多用例。
以下是如何定义它的示例,前提是通过上述插件钩子注册了名为“test-auth-handler”的可用身份验证处理程序
channel_settings:
- channel: https://some.custom/channel
auth: test-auth-handler
user: my-user-account
- channel: https://some.base-url-prefix/*
auth: another-auth-handler
注意
channel_settings
中的每个条目都需要定义 channel
属性,以便配置知道这些设置与哪个通道关联。channel
属性可以指定用于匹配的类似 glob 的 URL 模式。请注意,在这种情况下,HTTP 模式必须与通道 URL 完全匹配,因此像 *
这样的模式无效。
allowlist_channels
和 denylist_channels
:允许或拒绝特定通道#
在 24.9.0 版本中添加: denylist_channels
设置在 conda 24.9.0 中引入,作为现有 allowlist_channels
设置的补充。
使用 allowlist_channels
和 denylist_channels
,您可以允许或拒绝在 conda 操作中使用特定通道。这对于限制 conda 可以访问的通道非常有用,尤其是在企业或多用户环境中。
拒绝列表优先于允许列表。如果一个通道同时在两个列表中,则会被拒绝。
示例
允许 defaults
和 conda-forge
通道的 allowlist_channels
设置的示例是
allowlist_channels:
- defaults
- conda-forge
拒绝 conda-forge
通道的 denylist_channels
设置的示例是
denylist_channels:
- conda-forge
显式允许 defaults
通道但拒绝 conda-forge
通道,同时使用 allowlist_channels
和 denylist_channels
设置的示例是
allowlist_channels:
- defaults
denylist_channels:
- conda-forge
一个示例,展示了通道会根据其基本 URL 自动规范化,因此您可以使用完整的通道 URL 或仅使用基本 URL
allowlist_channels:
- defaults
denylist_channels:
- https://conda.anaconda.org/conda-forge/linux-64
一个拒绝使用 defaults
(映射到 default_channels)配置选项的示例
denylist_channels:
- defaults
注意
defaults 通道 默认指向 repo.anaconda.com 仓库中的通道列表。
一个显式拒绝托管在 repo.anaconda.com
上的通道的示例
denylist_channels:
- https://repo.anaconda.com/pkgs/main
- https://repo.anaconda.com/pkgs/r
- https://repo.anaconda.com/pkgs/msys2
auto_update_conda
:自动更新 conda#
当 True
时,每当用户在根环境中更新或安装包时,conda 都会自动更新自身。当 False
时,仅当用户手动发出 conda update
命令时,conda 才会更新自身。默认值为 True
。
示例
auto_update_conda: False
always_yes
:始终为 yes#
在被要求继续时,始终选择 yes
选项,例如在安装时。与在命令行中使用 --yes
标志相同。默认值为 False
。
示例
always_yes: True
show_channel_urls
:显示通道 URL#
在 conda list
中以及在显示即将下载的内容时显示通道 URL。默认值为 False
。
示例
show_channel_urls: True
changeps1
:更改命令提示符#
当使用 conda activate
时,将命令提示符从 $PS1
更改为包含已激活的环境。 默认值为 True
。
示例
changeps1: False
add_pip_as_python_dependency
: 将 pip 添加为 Python 依赖项#
将 pip、wheel 和 setuptools 添加为 Python 的依赖项。 这确保了在任何时候安装 Python 时,pip、wheel 和 setuptools 始终会被安装。 默认值为 True
。
示例
add_pip_as_python_dependency: False
use_pip
: 使用 pip#
当使用 conda list
列出软件包时,使用 pip。 这不会影响任何 conda 命令或功能,除了 conda list
命令的输出。 默认值为 True
。
示例
use_pip: False
proxy_servers
: 配置 conda 以在代理服务器后使用#
默认情况下,代理设置从 HTTP_PROXY 和 HTTPS_PROXY 环境变量或系统拉取。 在此处设置它们会覆盖该默认值
proxy_servers:
http: http://user:[email protected]:8080
https: http://user:[email protected]:8080
混合使用 HTTPS 和 HTTP
URL 中的协议(http://
或 https://
)应与您的代理服务器的实际协议匹配。 上例中的键 http
和 https
仅表示要路由的流量类型,而不是代理服务器本身的协议。 确保两个键都使用基于您的代理服务器配置的正确协议。
要为特定方案和主机提供代理,请对键使用 scheme://hostname
形式。 这与对给定方案和确切主机名的任何请求都匹配
proxy_servers:
'http://10.20.1.128': 'http://10.10.1.10:5323'
如果您不包含用户名和密码,或者身份验证失败,conda 会提示输入用户名和密码。
如果您的密码包含特殊字符,您需要按照 Wikipedia 上的百分号编码保留字符中所述对其进行转义。
请注意,当您想要使用 https
时不要使用 http
,或者当您想要使用 http
时不要使用 https
。
ssl_verify
: SSL 验证#
如果您位于执行 SSL 检查的代理之后,例如 Cisco IronPort Web Security Appliance (WSA),您可能需要使用 ssl_verify
来覆盖 SSL 验证设置。
默认情况下,此变量为 True
,这意味着使用 SSL 验证,并且 conda 验证 SSL 连接的证书。 将此变量设置为 False
会禁用连接的正常安全性,因此不建议这样做
ssl_verify: False
23.9.0 版本新增: ssl_verify: truststore
设置仅在 conda 23.9.0 或更高版本以及使用 Python 3.10 或更高版本时可用。
如果证书颁发机构已被操作系统信任(例如,因为它是由系统管理员安装的),您可以告诉 conda 通过将 ssl_verify
设置为 “truststore” 来使用操作系统证书存储
ssl_verify: truststore
您还可以将 ssl_verify
设置为证书的字符串路径,该路径可用于验证 SSL 连接
ssl_verify: corp.crt
offline
: 仅限离线模式#
过滤掉所有不使用 file://
协议的通道 URL。 默认值为 False
。
示例
offline: True
高级配置#
allow_softlinks
: 禁止软链接#
当 allow_softlinks
为 True
时,conda 在可能的情况下使用硬链接,在不可能使用硬链接时使用软链接(符号链接),例如在安装到与软件包缓存所在的文件系统不同的文件系统上时。
当 allow_softlinks
为 False
时,conda 仍然在可能的情况下使用硬链接,但在不可能时,conda 会复制文件。 单个软件包可以覆盖此选项,指定某些文件永远不应被软链接。
默认值为 True
。
示例
allow_softlinks: False
channel_alias
: 设置通道别名#
每当您使用 -c
或 --channel
标志为 conda 提供一个不是 URL 的通道名称时,conda 会将 channel_alias
前置到给定的名称。 默认的 channel_alias
是 https://conda.anaconda.org。
如果 channel_alias
设置为 https://my.anaconda.repo:8080/conda/
,那么运行命令 conda install -c conda-forge some-package
的用户将从 https://my.anaconda.repo:8080/conda/conda-forge
安装软件包 some-package。
例如,命令
conda install --channel asmeurer <package>
与以下命令相同
conda install --channel https://conda.anaconda.org/asmeurer <package>
您可以将 channel_alias
设置为您自己的存储库。
示例: 要将 channel_alias
设置为您在 https://your.repo.com 的存储库
channel_alias: https://your.repo/
在 Windows 上,您必须在 URL 的末尾包含斜杠 (“/”)
当 channel_alias
设置为您在 https://your.repo.com 的存储库时
conda install --channel jsmith <package>
与以下命令相同
conda install --channel https://your.repo.com/jsmith <package>
create_default_packages
: 默认情况下始终添加软件包#
创建新环境时,默认情况下添加指定的软件包。 默认软件包安装在您创建的每个环境中。 您可以使用 --no-default-packages
标志在命令提示符下覆盖此选项。 默认情况下不包含任何软件包。
示例
create_default_packages:
- pip
- ipython
- scipy=0.15.0
track_features
: 跟踪功能#
默认情况下启用某些功能以进行跟踪。 默认情况下不跟踪任何功能。 这类似于将 MKL 添加到 create_default_packages
列表中。
示例
track_features:
- mkl
update_dependencies
: 禁用依赖项更新#
默认情况下,conda install
将给定软件包更新到最新版本,并安装该软件包所需的任何依赖项。 但是,如果已安装满足软件包要求的依赖项,conda 将不会将这些软件包更新到最新版本。
在这种情况下,如果您希望 conda 将所有依赖项更新到与环境兼容的最新版本,请将 update_dependencies
设置为 True
。
默认值为 False
。
示例
update_dependencies: True
注意
Conda 仍然确保满足依赖项规范。 因此,某些依赖项可能仍然会更新,或者相反,这可能会阻止命令行中给出的软件包更新到其最新版本。 您始终可以在命令行中指定版本以强制 conda 安装给定的版本,例如 conda install numpy=1.9.3
。
为了避免仅更新环境中的特定软件包,更好的选择可能是固定它们。 有关更多信息,请参阅阻止软件包更新(固定)。
disallow
: 禁止安装特定软件包#
禁止安装某些软件包。 默认情况下允许安装所有软件包。
示例
disallow:
- anaconda
add_anaconda_token
: 添加 Anaconda.org 令牌以自动查看私有软件包#
当通道别名是 Anaconda.org 或 Anaconda Server GUI 时,您可以设置系统配置,以便用户自动查看私有软件包。 Anaconda.org 以前称为 binstar.org。 这使用 Anaconda 命令行客户端(您可以使用 conda install anaconda-client
安装它)自动将令牌添加到通道 URL。
默认值为 True
。
示例
add_anaconda_token: False
注意
即使设置为 True
,此设置也仅在安装了 Anaconda 命令行客户端并且您已使用 anaconda login
命令登录时启用。
envs_dirs
: 指定环境目录#
指定环境所在的目录。 如果设置了此键,则除非显式包含,否则不使用根前缀 envs_dir
。 此键还决定了软件包缓存的存放位置。
对于此处的每个 envs,envs/pkgs
用作 pkgs 缓存,但根目录中的标准 envs
目录除外,对于该目录,使用正常的 root_dir/pkgs
。
示例
envs_dirs:
- ~/my-envs
- /opt/anaconda/envs
CONDA_ENVS_PATH
环境变量会覆盖 envs_dirs
设置
对于 macOS 和 Linux:
CONDA_ENVS_PATH=~/my-envs:/opt/anaconda/envs
对于 Windows:
set CONDA_ENVS_PATH=C:\Users\joe\envs;C:\Anaconda\envs
pkgs_dirs
: 指定软件包目录#
指定软件包所在的目录。 如果设置了此键,则除非显式包含,否则不使用根前缀 pkgs_dirs
。
如果未设置 pkgs_dirs
键,则 envs/pkgs
用作 pkgs 缓存,但根目录中的标准 envs
目录除外,对于该目录,使用正常的 root_dir/pkgs
。
示例
pkgs_dirs:
- /opt/anaconda/pkgs
CONDA_PKGS_DIRS
环境变量会覆盖 pkgs_dirs
设置
对于 macOS 和 Linux:
CONDA_PKGS_DIRS=/opt/anaconda/pkgs
对于 Windows:
set CONDA_PKGS_DIRS=C:\Anaconda\pkgs
use_only_tar_bz2
: 强制 conda 仅下载 .tar.bz2 软件包#
Conda 4.7 引入了一种新的 .conda
软件包文件格式。 .conda
是 .tar.bz2
软件包更紧凑、更快速的替代方案。 因此,它是可用的首选文件格式。
尽管如此,可以通过将 use_only_tar_bz2
布尔值设置为 True
来强制 conda 仅下载 .tar.bz2
软件包。
默认值为 False
。
示例
use_only_tar_bz2: True
注意
如果安装的 conda-build 版本低于 3.18.3,则会强制设置为 True
,因为旧版本的 conda 在 conda 向其提供新文件格式时会崩溃。
console
: 配置显示类型#
24.11.0 版本新增: console
设置仅在此版本之后可用。
console
设置允许您修改 conda 命令的输出呈现方式。 此设置主要用作选择插件提供的新 reporter 后端的方式。
例如,插件可能会创建一个名为 “colors” 的新 reporter 后端。 作为用户,您将在您的 .condarc
文件中配置它,如下所示
console: colors
或使用 --console
选项在命令行中指定它
conda info --console=colors
Conda-build 配置#
root-dir
: 指定 conda-build 输出根目录#
构建输出根目录。您也可以使用 CONDA_BLD_PATH
环境变量来设置此项。默认值为 <CONDA_PREFIX>/conda-bld/
。如果您没有 <CONDA_PREFIX>/conda-bld/
的写入权限,则默认值为 ~/conda-bld/
。
示例
conda-build:
root-dir: ~/conda-builds
output_folder
: 指定 conda-build 构建文件夹 (conda-build 3.16.3+)#
用于存放输出包的文件夹。如果构建或测试成功,包将被移动到这里。如果未设置,输出文件夹与 root-dir
(根构建目录) 位于同一目录。 .. code-block:: yaml
- conda-build
output_folder: conda-bld
pkg_version
: 指定 conda-build 包版本#
要创建的 Conda 包版本。对于 .conda
包,请使用 2
。如果未设置,conda-build 默认使用 .tar.bz2
。
conda-build:
pkg_format: 2
anaconda_upload
: 自动上传 conda-build 包到 Anaconda.org#
自动将使用 conda-build 构建的包上传到 Anaconda.org。默认值为 False
。
示例
anaconda_upload: True
anaconda_token
: 用于 Anaconda.org 上传的令牌 (conda-build 3.0+)#
令牌是一种无需登录即可在 Anaconda.org 上进行身份验证的方式。您可以使用此 .condarc
设置或 CLI 参数将您的令牌传递给 conda-build。默认情况下未设置此项。设置此项会隐式启用 anaconda_upload
。
conda-build:
anaconda_token: gobbledygook
quiet
: 限制构建输出详细程度 (conda-build 3.0+)#
可以使用 quiet
设置来降低 Conda-build 的输出详细程度。要获得更高的详细程度,请使用 CLI 标志 --debug
。
conda-build:
quiet: true
filename_hashing
: 禁用文件名哈希 (conda-build 3.0+)#
Conda-build 3 向文件名添加哈希,以允许更灵活地自定义依赖项版本。如果您觉得这会造成干扰,可以使用以下配置条目禁用哈希
conda-build:
filename_hashing: false
警告
Conda-build 不检查何时覆盖包。如果您将 conda-build 3 的构建矩阵与未在构建字符串中反映的构建配置一起使用,则会由于覆盖而导致包丢失。
no_verify
: 禁用 recipe 和包验证 (conda-build 3.0+)#
默认情况下,conda-build 使用 conda-verify 来确保您的 recipe 和包满足一些最低限度的健全性检查。您可以禁用这些检查
conda-build:
no_verify: true
set_build_id
: 禁用每个构建文件夹的创建 (conda-build 3.0+)#
默认情况下,conda-build 为每个构建创建一个新文件夹,以包名称加上时间戳命名。这允许您同时进行多个构建。如果您遇到长路径问题,您可能需要禁用此行为。您应该首先尝试使用上面描述的 root-dir
设置更改构建输出根目录,但必要时可以退回到此设置
conda-build:
set_build_id: false
skip_existing
: 跳过构建已存在的包 (conda-build 3.0+)#
默认情况下,conda-build 构建您指定的所有 recipe。您可以改为跳过已构建的 recipe。只有当 recipe 的 *所有* 输出在您当前配置的通道上都可用时,才会跳过该 recipe。
conda-build:
skip_existing: true
include_recipe
: 从包中省略 recipe (conda-build 3.0+)#
默认情况下,conda-build 包含用于构建包的 recipe。如果其中包含敏感或专有信息,您可以省略 recipe。
conda-build:
include_recipe: false
注意
如果您不包含 recipe,则在构建完成后无法使用 conda-build 测试包。这意味着您无法跨两个不同的 CLI 命令拆分构建和测试步骤 (conda build --notest recipe
和 conda build -t recipe
)。如果您需要省略 recipe 并拆分步骤,您唯一的选择是在测试步骤后从 tarball 归档文件中删除 recipe 文件。Conda-build 不提供用于执行此操作的工具。
activate
: 在构建/测试期间禁用环境激活 (conda-build 3.0+)#
默认情况下,conda-build 在执行构建或测试脚本之前激活构建和测试环境。这会添加必要的 PATH 条目,并运行您可能拥有的任何 activate.d 脚本。如果您禁用激活,PATH 仍将被修改,但 activate.d 脚本将不会运行。不建议这样做,但有些人更喜欢这样。
conda-build:
activate: false
long_test_prefix
: 在测试期间禁用长前缀 (conda-build 3.16.3+)#
默认情况下,conda-build 为测试前缀使用长前缀。如果您的 recipe 在长前缀中失败,但仍想在短前缀中测试它们,则可以禁用长测试前缀。不建议这样做。
conda-build:
long_test_prefix: false
默认值为 true
。
pypirc
: PyPI 上传设置 (conda-build 3.0+)#
默认情况下未设置。如果您的 recipe 中有 wheel 输出,conda-build 将尝试使用此文件路径中的凭据将它们上传到 pypi_repository
设置指定的 PyPI 存储库。
conda-build:
pypirc: ~/.pypirc
pypi_repository
: 要上传到的 PyPI 存储库 (conda-build 3.0+)#
默认情况下未设置。如果您的 recipe 中有 wheel 输出,conda-build 将尝试使用 pypirc
设置指定的文件中的凭据将它们上传到此 PyPI 存储库。
conda-build:
pypi_repository: pypi
环境变量的扩展#
Conda 在配置设置的子集中扩展环境变量。这些设置包括:
channel
channel_alias
channels
client_cert_key
client_cert
custom_channels
custom_multichannels
default_channels
envs_dirs
envs_path
migrated_custom_channels
pkgs_dirs
proxy_servers
verify_ssl
allowlist_channels
denylist_channels
这允许您将私有存储库的凭据存储在环境变量中,如下所示
channels:
- https://${USERNAME}:${PASSWORD}@my.private.conda.channel
配置线程数#
您可以使用 .condarc
文件或环境变量来添加配置以控制线程数。您可能希望这样做来调整 conda 以更好地利用您的系统。如果您有非常快的 SSD,您可以增加线程数以缩短 conda 创建环境以及安装/删除包的时间。
repodata_threads
#
默认线程数:无
用于从
repodata.json
文件下载、解析和创建 repodata 结构的线程。可能同时发生来自不同通道的多次下载。这加快了开始求解的时间。
verify_threads
#
默认线程数:1
用于验证要安装到您的环境中的包和文件的完整性的线程。默认为 1,因为在此处使用多个线程可能会遇到较慢的硬盘驱动器的问题。
execute_threads
#
默认线程数:1
用于取消链接、删除、链接或复制文件到您的环境中的线程。默认为 1,因为在此处使用多个线程可能会遇到较慢的硬盘驱动器的问题。
default_threads
#
默认线程数:无
设置后,此值用于上述所有线程设置。使用其默认设置(无)时,它不会影响其他设置。
上述任何设置都可以在 .condarc
中完成或使用 conda config
在您的终端中
conda config --set repodata_threads 2
在 .condarc
中
verify_threads: 4