【发布时间】:2015-11-25 22:52:42
【问题描述】:
我下载了一个通过命令行运行的 python 程序 (PYPDFOCR)。 PYPDFOCR 有几个依赖项(ghost script、image magick 等)
当我在命令行中执行程序时,它失败了。该代码使用其所有参数执行 GhostScript,但我收到命令无法识别的错误。
如果我去命令行,我可以执行ghost脚本“C:\Programs.....\gswin64c.exe”并传递参数并得到结果。但是,当我运行 PYPDFOCR 时,它每次都失败。
def _run_gs(self, options, output_filename, pdf_filename):
try:
cmd = '%s -q -dNOPAUSE %s -sOutputFile="%s" "%s" -c quit' % (self.binary, options, output_filename, pdf_filename)
logging.info(cmd)
out = subprocess.check_output(cmd, shell=True)
except subprocess.CalledProcessError as e:
print e.output
if "undefined in .getdeviceparams" in e.output:
error(self.msgs['GS_OUTDATED'])
else:
error (self.msgs['GS_FAILED'])
我在命令中得到的错误是“C\Program”不是内部或外部命令、可运行程序或批处理文件。
当我打印命令的内容时,它显示:
c:\Program File\gs\gs9.16\bin\gswin64c.exe" -q -dNOPAUSE -sDEVICE=j[ecgray -dJPEG=75 -r300 -sOutputFILE="C:\test\a3_ %d.jpg "c:\test\a3.pdf" -c 退出
同样,我可以在没有程序的情况下运行 c:...gswin64.exe 命令。
任何帮助将不胜感激。
【问题讨论】:
-
建议避免 Windows 路径格式错误,将 c:\Program File\gs\gs9.16\bin 放在 Windows PATH 中,不要在任何地方使用 C:\...要执行的命令。
标签: python subprocess command-line-arguments ghostscript