Pythonスクリプトからシェルコマンドを実行しようとしています。 私は通常の容疑者、subprocess.call、Popen、os.systemなどを試しました。シェルコマンドはシェルで動作しますが、Pythonサブプロセスから起動したときには動作しません。
パラメータの1つがjson文字列であるため、実行しようとしているコマンドはかなり長い(7k文字)です。私が読んだことから、長さはここでは問題ではありません。
コマンドは次のようになります。
phantomjs /some/path/visualizer_interface.js -path /another/path/chart.svg -type chart_pie -id 0 -language de -data '{...}'
ビジュアライザインターフェースは基本的に、ファントムJSのコンテキストで要求されたチャートをレンダリングするSVGをつかんで指定したパスに書き込むことを、私は自分自身を書いたスクリプトです。私はまったく同じコマンドを実行すると完璧なグラフが得られますが、Pythonではサブプロセスが返ってこないので、サブプロセスstdoutでさえもフィードバックの形式はありません。
with open('/home/max/stdout.txt', 'w') as out:
res = subprocess.Popen(command, shell=True, stdout=out)
res.wait()
他のシェルコマンドを実行することができるので、基本的なPythonの問題ではありません。
非常に感謝しています。