我正在尝试从Python脚本执行shell命令。 我尝试了通常的嫌疑人,subprocess.call,Popen,os.system等。
我试图执行的命令确实相当长(7k个字符),因为其中一个参数是json字符串。从我所读到的长度来看,这不应该是问题。
命令如下所示:
phantomjs /some/path/visualizer_interface.js -path /another/path/chart.svg -type chart_pie -id 0 -language de -data '{...}'
可视化界面是我自己编写的一个脚本,它基本上在Phantom JS上下文中呈现所请求的图表,抓取svg并将其写入指定的路径。当我执行完全相同的命令时,我得到一个完美的图表,但在Python中,子进程永远不会返回,并且我不会得到任何形式的反馈,甚至在子进程stdout上也没有。
with open('/home/max/stdout.txt', 'w') as out:
res = subprocess.Popen(command, shell=True, stdout=out)
res.wait()
我能够执行其他shell命令,因此它不是Python的基本问题。
非常感谢任何想法。
答案 0 :(得分:0)
原来我在phantomjs脚本中有一个非常小的错误,根据它的执行位置而有所不同。