2

サブプロセスの使用が機能していません。コマンド プロンプトで、次のように Casperjs ファイルを実行します。

casperjs.bat test.js

スクリプトがexeではないため、失敗した場合はサブプロセスしてください。残念ながら、私は Windows 環境で作業しています。

cmd = ['/projects/casperjs/batchbin/casperjs.bat',  '/projects/music/test.js']
        response = subprocess.check_output(cmd, 
                shell=False,
                stderr=subprocess.STDOUT)

*0 以外の終了ステータス 1 を返すエラー

4

1 に答える 1

4

これに対する答えは、実際には 2 つの部分にあります。Python は JavaScript について何も知らないため、これを行う唯一の方法は、subprocess を使用して、phantomjs を指すパラメーターを前に保留し、次にスクリプトを指すことです。スクリプト内で、Casper.batch ファイルを指す必要があります。これは、ハウツーに記載されています。subprocess を使用すると、コマンド ラインから出力を取得できます。

    APP_ROOT = os.path.dirname(os.path.realpath(__file__))
    PHANTOM = '/projects/phantomjs/phantomjs.exe'
    SCRIPT = os.path.join(APP_ROOT, 'iTunesScriptSingle.js')
    params = [PHANTOM, SCRIPT, song, artist]
    child = subprocess.Popen(params, shell=True, stderr=subprocess.PIPE)
    while True:
        out = child.stderr.read(1)
        return out
        if out == '' and child.poll() != None:
            break
        if out != '':
            sys.stdout.write(out)
            sys.stdout.flush()
            return out
于 2013-07-20T14:58:43.373 に答える