Subprocess 由于子进程的原因,可能出现故障

Subprocess 由于子进程的原因,可能出现故障,subprocess,imagemagick,racket,Subprocess,Imagemagick,Racket,我是新手,在尝试调用外部进程时遇到了一个问题 所以我想把pdf文件转换成png文件,我已经定义了参数 (define convert-args (list "-density" "100") (dvi-file) "-quality" "90" (png-file))) 然后,我尝试使用以下代码调用convert: (apply system*/exit-code (convert-path) convert-args)

我是新手,在尝试调用外部进程时遇到了一个问题

所以我想把pdf文件转换成png文件,我已经定义了参数

  (define convert-args
    (list "-density" "100")
          (dvi-file)
          "-quality" "90"
          (png-file)))
然后,我尝试使用以下代码调用
convert

(apply system*/exit-code (convert-path) convert-args)
我已经检查了我组装的命令,它是
/usr/local/bin/convert-density 100 file.pdf-quality 90 file.png
,当我复制粘贴到命令行时,它工作得非常好。但是,如果我使用Racket运行此命令,它将给出以下错误:

转换:执行失败的命令“%gs”

我发现
gs
意味着

PostScript语言和PDF的解释器

所以我在想,Racket给我这个错误的原因是
convert
试图调用
gs
,但是
convert
是一个子流程,
gs
是另一个流程,不知何故子流程不能调用子流程,对吗?如果是,我能解决这个问题吗


提前谢谢

这在通过Imagick运行时也是典型的。解决方案通常是修改ImageMagick delegates.xml文件,在使用“gs”的各行中用“gs”的完整路径替换“gs”,其中显示
command=”“gs”
。您应该能够通过Unix系统上的
哪个gs
键入gs
找到gs的路径谢谢!@fmw42