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

使用Singularity容器运行R脚本(Slurm提交)遇路径报错求助

问题解决:Singularity容器内找不到R脚本
  • 核心问题是脚本最后一行没有正确解析变量:你写的Rscript SCRIPT_R会让容器把"SCRIPT_R"当成字面文件名,而非你定义的变量对应的实际路径。再加上你把本地工作目录绑定到了容器内的/home,容器内根本不存在叫"SCRIPT_R"的文件,自然报错。

修正后的完整脚本

#!/bin/bash

#SBATCH --job-name=linda
#SBATCH --output=./log/linda.out
#SBATCH --error=./log/linda.err
#SBATCH --cpus-per-task=10
#SBATCH --mem=40G

WD="/my/working/directory"

LINDA_SINGULARITY_IMG="/directory/to/linda/image/linda_latest.sif"
SCRIPT_R=${WD}"/LINDA_script.R"
# 容器内的脚本路径,对应绑定的/home目录
CONTAINER_SCRIPT="/home/LINDA_script.R"

srun singularity run --cleanenv --bind ${WD}:/home ${LINDA_SINGULARITY_IMG} Rscript ${CONTAINER_SCRIPT}

两种简化修正思路

  1. 直接用容器内的固定路径:既然已经把${WD}绑定到容器/home,直接写容器内的脚本路径就行,不用额外变量:
    srun singularity run --cleanenv --bind ${WD}:/home ${LINDA_SINGULARITY_IMG} Rscript /home/LINDA_script.R
    
  2. 保持本地与容器路径一致:把本地目录绑定到容器内的同名路径,这样直接用本地变量即可,不用转换路径:
    srun singularity run --cleanenv --bind ${WD}:${WD} ${LINDA_SINGULARITY_IMG} Rscript ${SCRIPT_R}
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:52:10