设置#

此页面包含 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_channelsdenylist_channels:允许或拒绝特定通道#

在 24.9.0 版本中添加: denylist_channels 设置在 conda 24.9.0 中引入,作为现有 allowlist_channels 设置的补充。

使用 allowlist_channelsdenylist_channels,您可以允许或拒绝在 conda 操作中使用特定通道。这对于限制 conda 可以访问的通道非常有用,尤其是在企业或多用户环境中。

拒绝列表优先于允许列表。如果一个通道同时在两个列表中,则会被拒绝。

示例

允许 defaultsconda-forge 通道的 allowlist_channels 设置的示例是

allowlist_channels:
  - defaults
  - conda-forge

拒绝 conda-forge 通道的 denylist_channels 设置的示例是

denylist_channels:
  - conda-forge

显式允许 defaults 通道但拒绝 conda-forge 通道,同时使用 allowlist_channelsdenylist_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://)应与您的代理服务器的实际协议匹配。 上例中的键 httphttps 仅表示要路由的流量类型,而不是代理服务器本身的协议。 确保两个键都使用基于您的代理服务器配置的正确协议。

要为特定方案和主机提供代理,请对键使用 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

高级配置#

channel_alias: 设置通道别名#

每当您使用 -c--channel 标志为 conda 提供一个不是 URL 的通道名称时,conda 会将 channel_alias 前置到给定的名称。 默认的 channel_aliashttps://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 的末尾包含斜杠 (“/”)

示例: https://your.repo/conda/

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 recipeconda 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