1

外部プロセスを実行するために使用するこの小さなユーティリティ関数があります。場合によっては、プロセスの出力を読み取ろうとするとハングします。出力読み取り行をコメントアウトすると、機能します。

def execute(command, cwd):
    command = command.split(' ')
    process = Popen(command,
        stderr=STDOUT, stdout=PIPE,
        cwd = cwd)

    # WITHOUT THIS IT WORKS
    #for line in process.stdout:    
    #    log.info('executing %s for user %s: %s' % (command, user.username, line))

    # ANOTHER TRY AT READING THE OUTPUT. ALSO MAKES IT HANG
    #output = p.communicate()[0]
    #log.info('executing %s for user %s: %s' % (command, user.username, output))

    process.wait()

何か助けはありますか?デバッグ目的で出力する必要があります。

4

1 に答える 1

2

私は何年も前にasync_subprocessを使い始めましたが、振り返ることはありませんでした。こちらの PyPI からも入手できます。

于 2012-09-25T08:12:28.037 に答える