【发布时间】:2010-07-19 18:12:40
【问题描述】:
我编写了一段 Cocoa 代码,它接收一个包含边界框的 XML 文件,然后在视频顶部绘制边界框(每个框都有一个关联的帧)。 Cocoa 程序旨在从命令行运行(并将其所有参数作为命令行参数)
我可以很好地运行任何 XML 文档的程序。但是,当我尝试从 Python 脚本中运行程序时遇到了问题。例如:
with file("test.xml") as temp:
temp.write(doc.toprettyxml())
# cval is my cocoa program to call, the other arguments are given to the Python script and parsed with optparser
command = ["./cval", "-o", options.output, "-i", str(options.interval), "-s", "%dx%d" % (options.width, options.height), "-f", str(options.frames), "-x", temp.name]
subprocess.call(command)
有时这会导致我的“cval”失败,有时不会(更改 XML 文档中的一个数字可以改变其行为)。我还可以在尝试读取不存在的 XML 元素时验证它是否中断。只是,我可以打开“test.xml”,并验证该元素确实存在。
但是,如果我自己(在 Python 脚本之外)使用“test.xml”运行“cval”,它可以正常工作。这使我相信当我执行“subprocess.call”时发生了一些奇怪的事情,但我不确定它可能是什么。我有其他 Cocoa/Python 组合,它们执行完全不同的任务(即不使用 XML),它们也任意表现出奇怪的行为,但本质上更复杂。
我希望有人可能也遇到过这个问题,或者可能知道调试这个怪异的下一步。
【问题讨论】:
-
你得到什么错误信息?
标签: python cocoa subprocess