0
我試圖從python腳本調用SLURM squeue。該命令,SLURM squeue格式參數在子進程中失敗.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 = username,jobid,name,timeleft」]' –