【问题标题】:Gimp: python script not showing in menuGimp:python 脚本未显示在菜单中
【发布时间】:2013-06-27 05:13:51
【问题描述】:

我遵循了this 教程,这是我迄今为止提出的:

#!/usr/bin/python
# -*- coding: utf-8 -*-
#http://www.ibm.com/developerworks/library/os-autogimp/

from gimpfu import*

def plugin_main(timg, tdrawable, maxh=540, maxw=800):

    currentWidth = tdrawable.width
    currentHeight = tdrawable.height

    newWidth = currentWidth
    newHeight = currentHeight

    if (maxw < newWidth):
        newWidth = maxw
        newHeight = (float(currentHeight) / (float(currentWidth) / newWidth))

    if (maxh < newHeight):
        newHeight = maxh
        newWidth = (float(currentWidth) / (float(currentHeight) / newHeight))

    pdb.gimp_image_scale(timg, newWidth, newHeight)

register(
        "python_fu_resize",
        "Saves the image at a maximum width and height",
        "Saves the image at a maximum width and height",
        "N N",
        "N N",
        "2013",
        "<Image>/Image/Resize to max...",
        "*",
        [],
        [],
        plugin_main)

main()

但插件不会出现在 gimp 菜单中(我使用的是 gimp 2.8)。授予文件 chmod a+x 权限。文件位置可能有问题:/.gimp-2.8/plug-ins/src/resize.py? src是因为eclipse。

【问题讨论】:

    标签: python gimp python-fu gimpfu


    【解决方案1】:

    如果您的脚本有任何语法错误,它根本不会显示在菜单中 - 上面的代码在代码的第一行确实有语法错误from gimpfu import**前少了一个空格)

    检查语法错误的一种简单方法是尝试单独运行脚本(如果在 GIMP 之外找不到“gimpfu”模块,它将失败,但到那时,语法已被解析 -另一种方法是使用 pyflakes 之类的 lint 实用程序来检查语法。

    从 GIMP 运行脚本时,您的脚本可能包含的其他运行时错误应出现在弹出窗口中 - 在该阶段,您只能更新脚本并从菜单重试。但是,如果您从脚本更改输入或输出参数,则必须重新启动 GIMP。

    是的,“文件位置”一个问题 - 您必须将您的代码放在为 Plug-ins 指定的目录中GIMP 的首选项 - 默认情况下是 ~/.gimp-2.8/plug-ins//usr/lib[64]/gimp/2.0/plug-ins - 没有“src” - 如果您的 IDE 不允许您指定将文件放在哪里,您必须自己将它们复制到那里,或者添加 src 目录在 GIMP 首选项中。

    【讨论】:

    • 进行了一些更改:添加了缺失的空格并将脚本移至/usr/lib/gimp/2.0/plug-ins。现在它出现在菜单中。谢谢。
    • 另一个调试技巧:从命令行启动gimp,你可以看到出现了什么样的错误信息。
    • 确保脚本可执行。运行 $ chmod +x plugin.py 为我解决了这个问题。
    • jsbueno 上面说过,但要强调的是:Gimp 认为 python 脚本是插件而不是脚本。如果要为 python 配置自定义文件夹,请在插件首选项中进行。
    • 我遇到了同样的问题,我在控制台中检查了脚本(没有错误),但能够通过以详细模式打开 GIMP 来诊断原因(创建 GIMP 的快捷方式并添加 --verbose到路径) - GIMP 在尝试加载丢失的脚本时抛出“删除重复的 PDB 过程”错误。这使我找到了问题的根源:我从另一个插件中复制了代码作为模板,并且未能更改注册部分中的名称 - 即第一个属性:register( "plugin_name" - 一旦我更改了它对于独特的东西,它会出现在菜单中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多