错误:(:1)python fu命令行执行的参数数无效

错误:(:1)python fu命令行执行的参数数无效,python,gimp,python-fu,gimpfu,Python,Gimp,Python Fu,Gimpfu,我已将以下python脚本添加到/usr/lib/gimp/2.0/plug-ins文件夹中 返回 批处理命令遇到执行错误:错误:(:1)无效 python fu my的参数数(应为4,但 收到(2) 在Gimp的过程浏览器中确实有4个参数,但若过程是通过命令行运行的,那个么它不应该期望它们,对吗 我跟着火车走。 怎么了?您不应该将函数注册为插件,而应该直接调用它(scale(“logo.png”))。但是您的代码必须显式加载映像文件才能获得gimp.image对象。尝试暂时将imageNam

我已将以下python脚本添加到/usr/lib/gimp/2.0/plug-ins文件夹中

返回

批处理命令遇到执行错误:错误:(:1)无效 python fu my的参数数(应为4,但 收到(2)

在Gimp的过程浏览器中确实有4个参数,但若过程是通过命令行运行的,那个么它不应该期望它们,对吗

我跟着火车走。
怎么了?

您不应该将函数注册为插件,而应该直接调用它(
scale(“logo.png”)
)。但是您的代码必须显式加载映像文件才能获得gimp.image对象。

尝试暂时将
imageName
更改为
*imageName
,这将收集提供给函数的所有参数,并且不会抱怨参数太多/太少。然后你可以把它们打印出来,看看到底传递了什么。嗨,如果我直接运行它,我会得到gimp_wire_write_msg:wire协议还没有初始化错误“直接运行”stll意味着使用gimp。类似于
gimp--no interface-b'(scale logo.png”)'-b'(gimp quit 0)
。您可能需要调整python路径并显式导入脚本:
gimp idf--batch解释器python fu eval-b'import sys;sys.path=[“]+sys.path;import yourscript;yourscript.run(“logo.png”)'-b'pdb.gimp_quit(1)
#!/usr/bin/python

from gimpfu import *

def scale(imageName):
    pass

register(
    "my",
    "",
    "",
    "",
    "",
    "2017",
    "<Image>/Image/Hi..",
    "RGB*, GRAY*",
    [(PF_STRING, 'file_name', 'file_name', 'logo.png')],
    [],
    scale)

main()
gimp --no-interface -b '(python-fu-my RUN-NONINTERACTIVE "logo.png")' -b '(gimp-quit 0)'