subprocess.call的问题

时间:2016-08-11 03:53:51

标签: python subprocess

blow命令在shell / terminal中运行良好,但在使用subprocess.call()方法在我的python脚本中调用时会出错。

-- command in shell/terminal
$ th neural_style.lua -gpu 0 -style_image input/style.jpg -content_image input/img.jpg

-- subprocess.call() in python script
# this works
subprocess.call(["th", "neural_style.lua", "-gpu", "0"])
# this goes wrong - Error during read_image: Read Error
-- subprocess.call in the python script
subprocess.call(["th", "neural_style.lua", "-gpu", "0", "-style_image" "input/style.jpg" "-content_image" "input/img.jpg"])

我应该如何使用subprocess.call?

1 个答案:

答案 0 :(得分:-1)

正如错误消息所示,它无法读取图像。错误(大概)来自您正在调用的th程序。我猜你在没有共享的错误消息中有其他信息,但最可能的解释是你从不同于直接运行th的目录运行Python脚本。例如,您是否从IDE运行Python脚本?它可能运行相对于工作空间或项目目录的命令。

要尝试的第一件事是交换absolute paths的图片参数(例如/home/username/input.style.jpg或他们所在的位置)。这将解决从不同目录运行的脚本。

一旦您确认了问题,您将如何解决问题取决于您。您可以简单地从正确的目录运行Python脚本,您可以指定相对于脚本运行位置的路径,或者您可以简单地始终使用Python脚本的绝对路径。您选择的确实取决于您的使用案例。