尝试从 IDLE 中 运行 imagemagick 时找不到命令错误

Command not found error while trying to run imagemagick from within IDLE

我想通过 Python 做一些 ImageMagick 的事情,我在 Mac OS 上安装了 ImageMagick。当我从 Python IDLE 中 运行 我的代码时,它给我 /bin/sh: magick: command not found 错误,而 运行 通过终端运行相同的程序工作正常。例如,当我从终端 运行 它喜欢 sh-3.2$ python3 imageMagicProblems.py 时,没有问题。

谁能帮我理解为什么在 运行 到 Python IDLE 时会出现问题?另见附件 screenshot。

这是我的代码:

import subprocess

args = "magick -version"
p = subprocess.Popen(args, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(out, err) = p.communicate()
print (out.decode('utf-8').rstrip())
print (err.decode('utf-8').rstrip())

问题是您的环境不同,特别是您的 PATH。为了找到您的 magick 命令的完整路径,请进入 magick 工作的普通终端和 运行:

type magick

它会告诉你类似这样的信息:

magick is
/usr/local/bin/magick

现在在您的 Python subprocess 命令中,使用您找到的相同完整路径,例如

args = '/usr/local/bin/magick -version'