Я пытаюсь вызвать SLURM squeue из сценария python. Команда,Ошибка аргумента формата squeue SLURM из подпроцесса. Popen
/usr/bin/squeue --Format=username,jobid,name,timeleft
прекрасно работает из командной строки, но терпит неудачу из subprocess.Popen
с:
p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
File "/n/home00/DilithiumMatrix/.conda/envs/py35/lib/python3.5/subprocess.py", line 947, in __init__
restore_signals, start_new_session)
File "/n/home00/DilithiumMatrix/.conda/envs/py35/lib/python3.5/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/squeue --Format=username,jobid,name,timeleft'
MWE:
import subprocess
command = "/usr/bin/squeue --Format=username,jobid,name,timeleft"
p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
text = p.stdout.read()
print(text)
/usr/bin/squeue
прекрасно работает как из командной строки или Popen
.
Может ли он быть неудачным, поскольку он требует некоторой информации о пользователе/группе, выполняющей команду squeue
, и которая (как-то) потеряна при запуске через python? Что еще может быть причиной этого?
Как выглядит ваш вызов 'subprocess.Popen'? Как это происходит? –
@MarkkuK. woops, извините --- MWE и сообщение об ошибке включены. – DilithiumMatrix
Вам необходимо передать команду в виде списка строк: 'command = ["/usr/bin/squeue "," --Format = имя пользователя, jobid, name, timeleft "]' –