You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

指定可用空间路径创建Conda环境仍报磁盘配额超限问题问询

问题场景

多文件系统挂载环境下,用户主目录磁盘空间/配额已耗尽,其他挂载路径存在充足可用存储。已通过--prefix参数指定conda环境安装路径、配置CONDA_PKGS_DIRS环境变量修改包缓存路径,执行环境创建命令时仍触发[Errno 122] Disk quota exceeded报错,完整报错栈如下:

Traceback (most recent call last):
  File "/apps/x86_64/software/Anaconda3/2021.05/lib/python3.8/site-packages/conda/exceptions.py", line 1079, in __call__
    return func(*args, **kwargs)
  File "/apps/x86_64/software/Anaconda3/2021.05/lib/python3.8/site-packages/conda/cli/main.py", line 84, in _main
    exit_code = do_call(args, p)
  File "/apps/x86_64/software/Anaconda3/2021.05/lib/python3.8/site-packages/conda/cli/conda_argparse.py", line 83, in do_call
    return getattr(module, func_name)(args, parser)
  File "/apps/x86_64/software/Anaconda3/2021.05/lib/python3.8/site-packages/conda/cli/main_create.py", line 41, in execute
    install(args, parser, 'create')
  File "/apps/x86_64/software/Anaconda3/2021.05/lib/python3.8/site-packages/conda/cli/install.py", line 317, in install
    handle_txn(unlink_link_transaction, prefix, args, newenv)
  File "/apps/x86_64/software/Anaconda3/2021.05/lib/python3.8/site-packages/conda/cli/install.py", line 346, in handle_txn
    unlink_link_transaction.execute()
  File "/apps/x86_64/software/Anaconda3/2021.05/lib/python3.8/site-packages/conda/core/link.py", line 250, in execute
    self._execute(tuple(concat(interleave(itervalues(self.prefix_action_groups)))))
  File "/apps/x86_64/software/Anaconda3/2021.05/lib/python3.8/site-packages/conda/core/link.py", line 713, in _execute
    raise CondaMultiError(tuple(concatv(
conda.CondaMultiError: [Errno 122] Disk quota exceeded

已执行的操作命令:

conda create --prefix ./path_where_there_is_space python=3.9
export CONDA_PKGS_DIRS=path_where_there_is_space

核心需求:完成所有必要配置,让conda运行全程不向主目录写入任何文件。

根因

仅修改环境安装路径、包缓存路径无法覆盖conda所有默认写入位置。conda默认会将用户配置、运行临时文件、插件/日志缓存三类数据写入主目录下的~/.conda、~/.cache路径,只要其中任意一个路径所在分区空间不足,就会触发磁盘配额超限报错。另外之前配置时使用相对路径指定缓存目录,conda运行时工作目录变动会导致路径识别失败,自动回退到主目录默认路径。

完整配置步骤

所有路径必须使用绝对路径,替换示例中的/data/your_username/conda_space为你自己的充足空间路径即可。

  • 提前创建好分类存储目录:
mkdir -p /data/your_username/conda_space/{pkgs,envs,config,tmp,cache}
  • 执行以下命令配置全量环境变量,覆盖所有conda默认写入主目录的路径:
# 重定向包缓存目录
export CONDA_PKGS_DIRS=/data/your_username/conda_space/pkgs
# 重定向conda用户配置目录,替代默认~/.conda
export CONDA_HOME=/data/your_username/conda_space/config
# 重定向conda环境默认存储路径
export CONDA_ENVS_PATH=/data/your_username/conda_space/envs
# 重定向运行时临时文件目录,覆盖事务执行阶段的临时写入需求
export TMPDIR=/data/your_username/conda_space/tmp
# 重定向用户缓存目录,替代默认~/.cache下的conda缓存
export XDG_CACHE_HOME=/data/your_username/conda_space/cache
  • 校验配置是否生效:
conda config --show envs_dirs pkgs_dirs

确认输出的所有路径均为你指定的新路径,不存在主目录(/home/你的用户名)下的路径。如果主目录下残留旧的.condarc配置文件,直接移动到新的CONDA_HOME目录下或者删除即可,避免conda读取旧配置触发主目录写入。

  • 杀掉所有残留的conda进程,避免旧进程加载历史配置:
pkill -f conda
  • 重新执行环境创建命令,--prefix指定的路径放到新建的envs目录下:
conda create --prefix /data/your_username/conda_space/envs/py39 python=3.9

如果需要配置永久生效,把第二步的所有export命令写入shell配置文件即可。主目录完全写满无法编辑配置文件的,可以先清理几KB无用的日志、缓存文件腾空间,或者先在当前shell执行完命令创建好环境再做持久化配置。

常见踩坑点
  • 漏配TMPDIR是最高发的问题:conda执行包解压、硬链接/软链接创建事务时,会优先往临时目录写入中间文件,系统默认临时目录如果落在满的主目录/根分区,哪怕其他路径都配置正确也会报错。
  • 不要用相对路径配置任何conda相关路径:conda执行过程中会切换工作目录,相对路径会解析失败触发默认路径回退。
  • 配置完不要立刻复用之前的shell会话:残留的conda进程、环境变量缓存都会导致新配置不生效,杀完进程重新开shell或者重新source环境变量最稳妥。

内容的提问来源于stack exchange,提问作者abinitio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 18:31:28