运行 python 脚本运行 shell 文件时退出代码 191

Posted

技术标签:

【中文标题】运行 python 脚本运行 shell 文件时退出代码 191【英文标题】:Exit code 191 when running a python script to run a shell file 【发布时间】:2014-04-07 13:49:32 【问题描述】:

我正在尝试使用 python 脚本在 unix 集群上运行一系列 oommf 模拟,但我在将命令从 python 发送到 bash 时卡住了。我正在使用这条线:-

subprocess.check_call('qsub shellfile.sh')

返回退出代码 191。退出代码 191 是什么,我似乎无法在网上找到它。这可能是 PBS 错误而不是 unix 错误,但我不确定。错误似乎不在 shell 文件本身,因为那里仅有的命令:-

#!/bin/bash

# 这是 hello world 程序的示例提交脚本。

# PBS PRO 的选项 =========================================== =====================

#PBS -l walltime=1:00:00

# 这指定作业应运行不超过 24 小时

#PBS -l select=1:ncpus=8:mem=2048mb

# 这指定作业需要 1 个“块”、1 个 CPU 内核和 2048 MB RAM(内存)。

#PBS -joe

#这会将错误合并输出到一个文件中,而不是制作两个文件

##PBS -o $working_folder/$PBS_JOBID-oommf_log

# 这会将你的输出发送到文件“hello_output”而不是标准文件名

# PBS PRO 的选项 =========================================== =====================

#PBS -P HPCA-000987-EFR

#PBS -M ppxsb3@nottingham.ac.uk

#PBS -m abe

# 这里我们只是使用 Unix 命令来运行我们的程序 echo "在hostname上运行"

睡20

echo "现在完成的工作""

应该只打印主机名和 'Finished job now'

谢谢

【问题讨论】:

所以你要执行的命令是''? 假设您对subprocess 的调用实际上是正确的(您发布的内容会给您一个Python OSError),这取决于脚本的实现。错误代码因实现而异。 返回码的含义是由执行的命令定义的,不是check_call 对不起,我不明白。我试过直接在shell中输入命令,但它只是返回'qsub:作业被所有可能的目的地拒绝'我知道这是我在unix中尝试做的一个问题,但我认为我正在使用check_call 获取退出代码告诉我出了什么问题,这是我无法解决的问题。 那么错误 191 可能是您从交互式调用中获得的错误消息的数字错误代码。如果没有关于qsub 的更多信息,我们也无法知道。哪个供应商和版本?它有手册页吗?在线? 【参考方案1】:

退出代码 191 表示与作业关联的项目代码无效。这是第 13 行的代码:-

#PBS -P HPCA-000974-EFG

这告诉集群代码与哪个项目相关联。

【讨论】:

以上是关于运行 python 脚本运行 shell 文件时退出代码 191的主要内容,如果未能解决你的问题,请参考以下文章

从 shell 脚本运行 python 文件时出现 ModuleNotFoundError 错误

shell脚本调用python处理中文错误的问题

关于Python的py文件在Python自带的shell编辑器中运行成功,用cmd打开运行却出错 在cmd下运行结果

azkaban怎么在job里面直接调用python脚本啊,我调用shell脚本正常运行,调用python脚本没有运行

sh Shell脚本,它有助于创建动态json文件并根据参数运行python脚本

怎样才能让python 脚本像shell命令一样直接运行并可以接收参数