从另一个Python脚本调用的Python脚本执行.jar文件时出错,作为子进程

时间:2015-06-15 22:40:23

标签: java python jar subprocess

这是我发布的here已解决帖子的扩展名。我有python script,其中包含以下jar执行代码(以及其他一些代码):

python_file2.py

import os
cmd_txt = "ssh -i pem_file.pem user@" + host_name + " 'cd /user/folder1/ && java -cp jar-file.jar'"
os.system(cmd_txt)

现在这个python script文件(python_file2.py)被另一个subprocess称为python script

Main_script.py

ret = subprocess.Popen([sys.executable,"python_file2.py"])

当我运行此 Main_script.py 时,来自jar的{​​{1}}文件的执行似乎被绞死了。当我单独运行第一个脚本时它工作正常,但当我尝试以python_file2.py执行它时,subprocess执行挂起并超时。

jar脚本中执行此jar执行被挂起的原因可能是什么?我想要的是运行一个jar文件,该文件存在于远程机器上的python脚本中,该脚本以subprocess运行。

1 个答案:

答案 0 :(得分:0)

使用subprocess.call代替subprocess.Popen

ret = subprocess.call([sys.executable,"python_file2.py"])
assert not ret, ret