【问题标题】:Conda config shows extra item than configuredConda config 显示的项目比配置的多
【发布时间】:2021-03-02 06:28:04
【问题描述】:

conda config --show-sources 表示只有一个配置文件,即/home/gqqnbig/.condarc。此文件将 envs_dirs 设置为 2 个位置。

$ conda config --show-sources --debug
DEBUG conda.gateways.logging:set_verbosity(231): verbosity set to 2
==> /home/gqqnbig/.condarc <==
envs_dirs:
  - ~/shared/.conda/envs
  - /opt/anaconda3/envs
pkgs_dirs:
  - /opt/anaconda3/pkgs
  - ~/shared/.conda/pkgs

==> cmd_line <==
debug: True

尽管如此,conda config --show 表示 envs_dirs 的计算值有 3 个位置。

$ conda config --show envs_dirs --debug
DEBUG conda.gateways.logging:set_verbosity(231): verbosity set to 2
DEBUG conda.base.context:root_writable(498): [Errno 13] Permission denied: '/opt/anaconda3/conda-meta/history'
envs_dirs:
  - /home/gqqnbig/shared/.conda/envs
  - /opt/anaconda3/envs
  - /home/gqqnbig/.conda/envs

第三个位置如何填充?如何防止 conda 使用/home/gqqnbig/.conda/envs

【问题讨论】:

    标签: ubuntu conda


    【解决方案1】:

    Conda 默认环境目录

    $CONDA_ROOT_PREFIX/envs~/.conda/envs 目录都是 baked into the Conda code 并且将始终附加.condarc 中的列表(您的第一个命令显示的内容)以生成最终计算context.envs_dirs(您的第二个命令显示的内容)。只有在所有更高的先例位置都不可写时,Conda 才会使用它。

    我不知道这部分代码的历史,但我怀疑这个默认文件夹主要是作为共享系统上用户的备用文件夹,其中 Conda 实例(因此 $CONDA_ROOT_PREFIX/envs)位于不可写的位置.也就是说,在这两个目录中烘焙,试图确保在单用户和共享用户安装场景中至少存在一个可写环境文件夹。

    强制只读

    我不完全确定,但看起来 Conda 不会出于任何其他目的依赖此文件夹。因此,如果您真的想确保 Conda 永远不会使用它,您可以简单地将目录设为只读:

    chmod -w ~/.conda/envs
    

    为了安全起见,您可以尝试设置它,然后测试创建一个显示详细程度的环境以检查问题。

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 2022-06-10
      • 2019-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多