使用Python进行Shell脚本时出现“找不到命令”
我有一个Python脚本:
#!/usr/bin/python
print 'hi'
我想把这个脚本作为一个任务发送到计算集群上执行。我是用qsub
命令来发送的,像这样:qsub myscript.py
在运行之前,我执行了以下操作:
chmod +x myscript.py
但是当我打开输出文件时,我发现里面是这个:
Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.
而当我打开错误文件时,我发现里面是这个:
print: Command not found.
那到底出了什么问题呢?!
补充:我按照这个问题中的说明操作的。
2 个回答
0
一种方法是把解释器设置为python,像这样:
qsub -S /usr/bin/python myscript.py
我很确定还有其他方法可以做到这一点,而不需要使用-S
选项,让SGE根据文件开头的解释器来执行代码;不过,这个解决方案可能已经足够满足你的需求。
另外,关于这个输出:
Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.
似乎可以安全地忽略这个:
编辑:
这个方法也有效:
qsub <<< "./myscript.py"
qsub <<< "python ./myscript.py"
0
看起来 qsub
没有读取你的 shebang 行,所以它只是用 shell 来执行你的脚本。
这个回答提供了几种处理方法,具体取决于你的系统: 我该如何在命令行中使用 qsub 和 Python?