运行 python GIMP

Running python GIMP

我有一个脚本 blackandwhite.py 放在 "C:\Users\Marcin.gimp-2.8\plug-ins" 文件夹中。它需要两个目录作为参数。从 GIMP 菜单或 python-fu 控制台执行时,它工作得很好:

pdb.python_fu_black_and_white("L:\PICS", "L:\OUT");

但是,当我尝试通过

从命令行执行它时
gimp-console-2.8.exe -df --batch-interpreter python-fu-eval -b "from gimpfu import *;pdb.python_fu_black_and_white(0,"L:\PICS", "L:\OUT")" -b "pdb.gimp_quit(1)"

给出"batch command experienced an execution error"。 有人知道如何正确操作吗?

查看您的命令在 Stack Overflow 上突出显示的语法方式。

我把它包起来,这样更容易看到:

gimp-console-2.8.exe -df --batch-interpreter python-fu-eval -b \
    "from gimpfu import *;pdb.python_fu_black_and_white(0,"L:\PICS", "L:\OUT")" \
    -b "pdb.gimp_quit(1)"  #                                  ^         ^
                           #                                 here and here

你在嵌套双引号。您需要转义它们,或者更好的是,用单引号替换一组:

gimp-console-2.8.exe -df --batch-interpreter python-fu-eval -b \
    'from gimpfu import *;pdb.python_fu_black_and_white(0,"L:\PICS", "L:\OUT")' \
    -b "pdb.gimp_quit(1)"

在Windows中,最简单的方法是用双引号将CMD.EXE标记括起来,Python代码使用单引号(*):

gimp-console-2.8.exe -df --batch-interpreter python-fu-eval -b "from gimpfu import *;pdb.python_fu_black_and_white(0,'L:/PICS', 'L:/OUT')" -b "pdb.gimp_quit(1)"

您可以通过使用正斜杠作为文件分隔符来避免很多问题,Windows 除了命令行参数之外的任何地方都接受它们(但这里它们在 Python 字符串中)。

此外,如果您只是批量使用脚本,则无需将脚本注册为插件。有关示例代码,请参阅

(*) 在 Linux/macOS 中,做相反的事情:在命令行参数周围使用单引号,Python 字符串使用双引号。