设置#
此页面包含 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://
)应与代理服务器的实际协议匹配。以上示例中的 http
和 https
键仅表示要路由的流量类型,而不是代理服务器本身的协议。确保这两个键都使用基于代理服务器配置的正确协议。
要为特定方案和主机提供代理,请使用 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
高级配置#
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 向其提供新的文件格式时会崩溃。
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 recipe
和 conda 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