尝试从 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'
我想通过 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'