【问题标题】:Python script not continuing after calling subprocess调用子进程后Python脚本不继续
【发布时间】:2015-06-10 10:19:07
【问题描述】:

我有一个 python 脚本调用带有 subprocess 模块的 java 文件:

import subprocess
java_cmd = ['java', '-cp', 'bin/stuff/:lib/asm-all-3.3.jar:lib/jdom.jar',
      'ch.idsia.scenarios.Main']
subprocess.call(java_cmd, shell=False)
print "Hello world"

这工作正常,然后 java 文件等待 python 脚本继续并连接套接字,正如我想要的那样。但是python脚本没有继续。为什么不?我知道它不会,因为 print 语句永远不会执行。

当我从 Eclipse 手动运行 java 文件然后从命令行执行 python 脚本时,一切都按预期运行。 我也试过用subprocess.Popen()而不是subprocess.call(),结果没有区别。

【问题讨论】:

    标签: java python subprocess


    【解决方案1】:

    谢谢@KSFT; subprocess.call() 在命令完成之前不会返回,但 subprocess.Popen() 会。所以我打电话给subprocess.Popen(),然后是time.sleep(0.5)。让 python 脚本等待 0.5 秒可以让 java 文件有足够的时间来打开和初始化套接字连接。

    【讨论】:

      【解决方案2】:

      subprocess.call() 在它运行的命令完成之前不会返回。您可以使用multithreading 同时运行其他东西。

      【讨论】:

        猜你喜欢
        • 2013-12-08
        • 2014-12-17
        • 1970-01-01
        • 1970-01-01
        • 2015-03-23
        • 1970-01-01
        • 2018-07-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多