设置#

此页面包含 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,它将设置新的默认通道列表。这对于隔离和企业安装特别有用。

为了确保所有用户仅从本地存储库中提取包,管理员可以设置 通道别名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 属性可以指定用于匹配的类似通配符的 URL 模式。请注意,在这种情况下,HTTP 架构必须与通道 URL 完全匹配,因此像 * 这样的模式是无效的。

auto_update_conda:自动更新 conda#

当为 True 时,conda 在用户更新或安装根环境中的包时会自动更新自身。当为 False 时,conda 仅在用户手动发出 conda update 命令时更新自身。默认值为 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#

使用 pip 列出 conda list 中的包。这不会影响除 conda list 命令的输出以外的任何 conda 命令或功能。默认值为 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 会提示输入用户名和密码。

如果您的密码包含特殊字符,您需要按维基百科上的 百分比编码保留字符 中所述对它们进行转义。

小心不要在您需要 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 向其提供新的文件格式时会崩溃。

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: 禁用食谱和包验证 (conda-build 3.0+)#

默认情况下,conda-build 使用 conda-verify 来确保您的食谱和包满足某些最低限度的健全性检查。您可以禁用这些

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 会构建您指定的每个食谱。您可以改为跳过已构建的食谱。只有当食谱的所有输出都可以在您当前配置的频道上获得时,才会跳过该食谱。

conda-build:
    skip_existing: true

include_recipe: 从包中省略食谱 (conda-build 3.0+)#

默认情况下,conda-build 包含用于构建包的食谱。如果这包含敏感或专有信息,您可以省略食谱。

conda-build:
    include_recipe: false

注意

如果您不包含食谱,则无法使用 conda-build 在构建完成后测试包。这意味着您无法将构建和测试步骤拆分为两个不同的 CLI 命令 (conda build --notest recipeconda build -t recipe)。如果您需要省略食谱并拆分步骤,您唯一的选择是在测试步骤完成后从 tarball 伪影中删除食谱文件。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 为测试前缀使用长前缀。如果您有在长前缀中失败但在短前缀中仍想测试的食谱,您可以禁用长测试前缀。这并不推荐。

conda-build:
    long_test_prefix: false

默认值为 true

pypirc: PyPI 上传设置 (conda-build 3.0+)#

默认情况下未设置。如果您在食谱中具有 wheel 输出,conda-build 会尝试使用此文件路径中的凭据将它们上传到 pypi_repository 设置指定的 PyPI 存储库。

conda-build:
    pypirc: ~/.pypirc

pypi_repository: 要上传到的 PyPI 存储库 (conda-build 3.0+)#

默认情况下未设置。如果您在食谱中具有 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

这使您可以将私有存储库的凭据存储在环境变量中,如下所示

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