繁体   English   中英

Python环境和Slurm问题(srun/sbatch)

[英]Problem with Python environment and Slurm (srun/sbatch)

当我尝试在 Ubuntu 上设置虚拟环境时遇到问题,使用"virtualenv --system-site-packages myenv"并尝试使用slurm (srun/sbatch)运行我的 python 脚本

虽然我过去运行我的代码没有问题,但此时我在尝试在我的环境激活的情况下运行时遇到“ModuleNotFoundError” (源 ./myenv/bin/activate)

我注意到虽然我可以在当前环境激活的情况下正常运行“python foo.py” ,但“srun python foo.py”失败。 事实上,通过printint sys.version,我可以看到用srun运行的python版本与用srun运行的python命令不同,它告诉我环境改变了(因此找不到我的包)。 “srun python --version”也证实了这一点。

有没有人遇到过类似的问题?

谢谢

我在 Slurm 版本 20.11.7 中遇到了类似的问题
我有一个使用系统 python3 创建的虚拟环境,它是 Python 3.6.8
在调用已安装模块的日志节点上激活 venv 时工作正常,但例如在以下 shell 脚本中它没有并导致 ModuleNotFound:

#!/bin/bash

#SBATCH --partition=gpu         #use GPU partition
#SBATCH --nodes=1               #number of nodes 
#SBATCH --gres=gpu:2            #number of GPUs per node 
#SBATCH --job-name=joeynmt_test
#SBATCH --mail-user=email
#SBATCH --mail-type=all
#SBATCH --ntasks=1
#SBATCH --mem=24G
#SBATCH --time=08:00:00
#SBATCH --qos=standard


source /home/.../bin/activate   #activate venv
python3 --version
which python3


python3 -m myModule

在激活 venv 后直接调用 python3 --version 导致系统 python 及其从 venv 插入 python 的位置

对我有用的是加载更新的 Python 版本(模块添加 Python/3.8.6-GCCcore-10.2.0),然后创建 venv,然后在 shell 脚本中相应地:

#!/bin/bash

#SBATCH --partition=gpu         #use GPU partition
#SBATCH --nodes=1               #number of nodes 
#SBATCH --gres=gpu:2            #number of GPUs per node 
#SBATCH --job-name=joeynmt_test
#SBATCH --mail-user=email
#SBATCH --mail-type=all
#SBATCH --ntasks=1
#SBATCH --mem=24G
#SBATCH --time=08:00:00
#SBATCH --qos=standard

module add Python/3.8.6-GCCcore-10.2.0

source /home/.../bin/activate   #activate venv
python3 --version
which python3


python3 -m myModule

使用 sbatch 将其提交给 Slurm 不会引发任何错误,并且 venv 已成功“转移”到工作节点。 也许对其他人有帮助。

python 环境是通过环境变量设置的,Slurm 并不总是将您当前的环境带入您的工作中。 您可以使用--export选项指定它,例如使用--export=ALL 如果未指定任何内容,这应该是默认值,但您的管理员可能已通过特定的 Slurm 环境变量更改了它。

如果您使用 sbatch,另一种解决方法是在您的作业脚本中加载虚拟环境。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM