Python无法导入GIMPFU

2024-05-19 00:00:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用pythonfu写一个gimp脚本。但是,当我尝试在本地运行脚本时,会得到一个错误

`--> ./vvv.py
Traceback (most recent call last):
  File "./vvv.py", line 5, in <module>
    from gimpfu import *
ImportError: No module named gimpfu

我认为脚本可能只能通过gimp加载。但是,脚本不会出现在gimp菜单中。在这种情况下,如何获得错误输出?


Tags: py脚本most错误linecallfilelast
3条回答

这是预期的行为。GIMP的Python插件有一个不同寻常的设计:不要直接调用Python脚本,而是调用GIMP,GIMP依次调用脚本(GUI和命令行脚本都是这样)。


  1. 确保在脚本末尾注册中心函数:

    from gimpfu import *
    
    # ... your script ...
    
    args = [(PF_STRING, 'file', 'GlobPattern', '*.*')]   # adjust to your function
    register('my-script', '', '', '', '', '', '', '', args, [], my_function)
    main()   # GIMP's main(), do not write your own!
    
  2. 将脚本标记为可执行

    chmod +x my_script.py
    
  3. 复制、移动或硬链接脚本,使其位于GIMP的插件目录中:

    ln my_script.py ~/.gimp-2.8/plug-ins/my_script.py
    
  4. 现在可以调用将调用脚本的GIMP(警告:GIMP有点慢)

    gimp -i -b '(my-script RUN-NONINTERACTIVE "example.png")' -b '(gimp-quit 0)'
    

    如上所述,不要这样做:

    python my_script.py   # bad!
    

括号是因为它是一个Scheme函数调用。出于同样的原因,您必须用下划线替换可用函数列表中的所有连字符(可以在GIMP GUI的Help > Procedure Browser下找到)。

如果需要示例脚本,请签出the documentationmy script

Python插件不出现在GIMP中的一个常见原因是语法错误。一种快速、可编写脚本的检查方法:

python -m py_compile vvv.py

在Windows平台上,成功的编译将返回0的%errorlevel%

根据您的操作系统,您必须查找GIMP插件的目录,例如:

GIMP 2\lib\gimp\2.0\plug-ins 

把你的剧本抄下来。当然,你必须添加这样的注册信息:

register(
    "python-fu-draw",                                #<- this is plugin name
    N_("brief"),                                     #<- description
    "Long",                                          #<- description
    "name surname",                                  #<- author
    "@Copyright 2013",                               #<- copyright info
    "2013/10/29",                                    #<- creation date
    N_("_Draw..."),                                  #<- label shown in gimp's menu
    "",  #<- kind of image requested from your script (INDEX,RGB,...and so on)
    [                                                #<- input parameters array
        (PF_FILE, "ifile", N_("Color input file"), 'default.txt'),
],
[],                                                  #<- output parameters array (usually empty)
draw,                                                #<- main method to call 
menu="<Image>/Filters/",                             #<- Where add your plugin
domain=("gimp20-python", gimp.locale_directory) 
)

main()                                               #<- don't forget this

将脚本复制到具有正确注册内容的正确目录后,可以运行GIMP并在“注册内容”中选择的下拉菜单中运行脚本。 您不必从python控制台运行它。所以这些不起作用:

python myscript.py
./myscript.py
>>> myscript

要从gimp以交互方式打开python fu控制台来调试脚本,请执行以下操作:

Filters->Python-fu->Console

看看this网站。主要是幻灯片非常有用。

如果要以批处理模式运行脚本,请查看this

相关问题 更多 >

    热门问题