已配置.bashrc仍无法激活Conda环境报CommandNotFoundError问题
Conda在SLURM作业脚本中激活失败解决方案
- 问题根源
你提交到SLURM集群的作业运行的是非交互式bash会话,默认不会加载用户主目录的~/.bashrc配置,你提前写在.bashrc里的conda初始化逻辑未生效,因此脚本无法识别conda activate命令,环境激活失败后用系统默认Python运行代码,自然找不到tensorflow包。 - 修复方案(最稳妥,不依赖.bashrc加载逻辑)
直接在你的作业脚本中手动完成conda初始化,修改后的脚本如下:
#!/usr/bin/env bash #SBATCH --job-name=fgpu #SBATCH --account=p077 #SBATCH --partition=gpu #SBATCH --nodes=1 #SBATCH --gres=gpu:1 #SBATCH --gpus=1 #SBATCH --mem=16000 #SBATCH --time=0-01:00:00 module load Anaconda3/5.3.0 # 手动加载conda初始化脚本,替代.bashrc中的对应逻辑 . /nvme/h/buildsets/eb_cyclone/software/Anaconda3/5.3.0/etc/profile.d/conda.sh conda activate tensorflow-dementia # 可选:加两行校验确认环境激活成功,排查问题时可以保留 which python conda env list jobid=$SLURM_JOBID python main_foml_trans.py > job${jobid}.txt
- 额外校验项
如果修改脚本后仍报找不到tensorflow的错误,先在交互式登录节点执行以下命令,确认环境配置正确:
- 激活目标环境:
conda activate tensorflow-dementia - 验证包安装:
python -c "import tensorflow as tf; print(tf.__version__)"
如果执行报错,说明该环境内未正确安装tensorflow,执行对应版本的安装命令即可。
内容的提问来源于stack exchange,提问作者Perl Del Rey
相关产品推荐
相关产品推荐

