【问题标题】:Passing qsub variables to .pbs script which calls python将 qsub 变量传递给调用 python 的 .pbs 脚本
【发布时间】:2014-08-14 04:21:01
【问题描述】:

我正在使用带有 -v 标志的 qsub,如下所示:

qsub -v START=0,COUNT=30000 foobar.pbs

这会将 START 和 COUNT 很好地传递给 foobar.pbs 但 foobar.pbs 最终需要这样调用:

python /home/CS4/bin/myrun.py foo_bar.ini

问题似乎是 bash 没有正确解释 python 调用并且 python 进程永远不会产生。这一定很简单吧?任何帮助将不胜感激

pbs 脚本如下所示:

#!/bin/bash

#PBS -N test
#PBS -l select=1:ncpus=1:mem=4gb
#PBS -l walltime=2:00:00
#PBS -j oe

set -x 
cd ${PBS_O_WORKDIR}
export PYTHONPATH=/home/CS4:${PYTHONPATH}

TEMPL=/home/CS4/in/tr/1km/foo_bar.ini.m4
DIR=$(dirname ${TEMPL})
BASE=$(basename ${TEMPL} .m4)
INI=$(basename ${BASE} .ini).${START}.ini
m4 -D START=${START} -D COUNT=${COUNT} ${TEMPL} > ${DIR}/${INI}

time python /home/CS4/bin/myrun.py ${DIR}/${INI}

【问题讨论】:

  • 脚本运行时输出对您可见吗?
  • @konsolebox set - x 下面的所有内容都打印在输出中,并在其前面加上 + - 回显这些命令。 m4 宏正在为 python 执行创建 .ini 文件。这部分效果很好。只有 python 没有被执行。
  • 1. python 调用是否可以在不使用time 的情况下工作? 2. 另外,尝试-V 选项来导出shell 环境,通常包括python 的路径。 3. SGE 是否有报错,即来自qstat -j <jobid>

标签: python bash qsub


【解决方案1】:

您是否尝试过提供 python 的完整路径?

【讨论】:

  • 我用 export PATHPATH 声明更新了 OP。它在原始 PBS 脚本中,但我没有将它放在代码块中。
  • 嗯,PYTHONPATH 用于 python 找到其模块的位置。我说的是python可执行文件的完整路径。例如/usr/local/bin/python 或类似的东西。
猜你喜欢
  • 2013-08-27
  • 1970-01-01
  • 2021-08-14
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多