Python,Imagemagick和子进程调用

时间:2015-11-28 15:50:49

标签: python imagemagick subprocess

尝试在python脚本中使用子进程调用来运行Imagemagick命令。 我在/ usr / local / Cellar中安装了imagemagick,所以我尝试了两个选项,因为它看起来没有找到转换命令。

顺便说一句,'convert'命令是一个imagemagick命令。 :) 以下是我的代码中与其直接相关的部分。

import sys, os, subprocess, string
tempo = 8; #this is just for sample purposes, in the actual code this variable is imported from a csv file

# test with just captioning one image and not whole loop
subprocess.call('convert rgb10.png -pointsize 50 -draw "text 180,180 ' + str(tempo) + '" rgb10-n.png')

我也尝试了“subprocess.call('/ usr / local / Cellar / imagemagick / 6.8.9-8 / bin / c ....”因为我认为它可能不是找不到命令。

此外,我当我在终端命令行(而不是脚本)中运行此命令时,它可以正常工作 (ex: convert rgb298.png -pointsize 50 -draw "text 180,180 'test' " rgb298-n.png)所以我知道它必须是我的子进程调用的问题。

运行时,这是我收到的错误

   subprocess.call('/usr/local/Cellar/imagemagick/6.8.9-8/bin/convert rgb10.png -pointsize 50 -draw "text 180,180 ' + str(tempo[9]) + '" rgb10-n.png')
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 470, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 623, in __init__
    errread, errwrite)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/subprocess.py", line 1141, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

注意:我也试过subprocess.call('python2.6 convert rgb10.png ...

1 个答案:

答案 0 :(得分:1)

......我已经让它上班了,真是太傻了!

已添加,shell = True

subprocess.call('convert rgb10.png -pointsize 50 -draw "text 180,180 ' + str(tempo) + '" rgb10-n.png', shell=True)

现在适用于遇到此问题的其他任何人。

除非它实际上没有绘制或接收帐户变量' tempo',又名不处理+ str(节奏)+位