关键词:超算、module、conda、气象、Wrf-python、xesmf、超分辨率 适合人群:刚拿到超算账号、被系统自带2.7劝退的小伙伴
sbatch 就报错:No module named numpy一句话:在超算里“conda 是亲妈,module 是亲爹”。
module load anaconda3 # 1️⃣ 让系统认识 conda
conda create -n py312 -c conda-forge python=3.12 # 2️⃣ 建环境
conda activate py312 # 3️⃣ 进场
完了,真的完了,后面你想装 wrf-python、xesmf、torch 随便 conda install。
每次登陆只要重复下面两句就能回到你的小窝:
module load anaconda3
conda activate py312
module avail |& grep -i conda
# 常见返回:anaconda3/2023.03 anaconda2/2019.10
module load anaconda3/2023.03 # 版本号按查到的写
which conda # 确认出现 /path/to/conda
这里给出“万能气象配方”,Python≥3.8 才能装新版 xesmf:
conda create -n py312 -c conda-forge \
python=3.12 \
numpy scipy matplotlib cartopy pandas netCDF4 xarray dask
conda activate py312
python -V # 应返回 3.12.x
python -c "import xarray, cartopy, netCDF4; print('OK')"
conda install -c conda-forge wrf-python xesmf
# 如要深度学习
conda install pytorch torchvision torchaudio -c pytorch
#!/bin/bash
#SBATCH -J ctest
#SBATCH -p normal
#SBATCH -n 1
#SBATCH -t 00:05:00
module load anaconda3/2023.03
conda activate py312
python <<'PY'
import numpy as np, xarray as xr, xesmf as xe
print('Hello from', np.__version__, xr.__version__, xe.__version__)
PY
提交:
sbatch test.sbatch
squeue -u $USER
看到 DONE 就证明环境整条链路通了。
1 conda init 后仍找不到 activate
→ 把下面一行写进 ~/.bashrc 再 source ~/.bashrc
export -f conda __conda_activate __add_sys_prefix_to_path > /dev/null 2>&1
2 作业节点找不到环境
→ 提交脚本里一定再写一次 module load anaconda3 && conda activate py312,因为 compute 节点不继承登录节点的环境。
3 pip 与 conda 混用
→ 优先 conda;不得不 pip 时,先 conda install pip,再用 python -m pip install xxx 确保装到当前环境。
4 空间爆满
→ conda clean -tp 清缓存;或者把 envs_dirs 改到 scratch 盘:
conda config --add envs_dirs /scratch/$USER/conda_envs
conda env export -n py312 > py312.yml
# 在新机器上
conda env create -f py312.yml
连同脚本一起丢给师弟,他 30 秒就能复刻整套环境。
在超算里搭 Python 就三件事:module load anaconda → conda create → conda activate。 记住这条"铁三角",从此告别“缺包求人”,把精力留给真正的气象科研和业务跑模式。祝大家 paper 秒 accept,模式不炸!