1

我正在为 Blender 编写一个附加组件以将其与 Gimp 同步,并且该脚本应该能够从 Gimp 中启动,但我无法注册它......为什么?

blender_gimp_sync.py:

# -*- coding: utf-8 -*-

#!/usr/bin/env python

from gimpfu import *

def blender_gimp_sync():
    image_dir = "/home/antoni4040/Έγγραφα/Layout.png"
    image = gimp.pdb.gimp_file_load(image_dir, image_dir)
    gimp.Display(image)


register(
    "python_fu_bgsync",
    "Blender-Gimp Sync",
    "Syncronize Gimp with Blender for texturing",
    "Antonis Karvelas",
    "Antonis Karvelas",
    "2012",
    "<Image>/Image/Blender-Gimp Sync",
    "*",
    [],
    [],
    blender_gimp_sync
)   

main()

真的很奇怪……

4

1 回答 1

2

您没有说您遇到了哪个错误-但是自从您发布了源文件以来,我想我可以猜到:GIMP期望它的插件可以由系统执行-以及什么告诉Posix(包括Linux)系统该文件应该使用特定的解释器或 shell 执行的是 shebang 行 -#!/usr/bin/env python您的示例中的行。

然而,这一行必须是文件的第一行——其中的#!字符应该是文件的前两个字符。表示字符编码的行 -# -*- coding: utf-8 -*-应该在它之后 - 它必须是文件中的第二行,它们之间没有空行)。

最后,确保通过在 Python 文件上运行“chmod a+x”将脚本设置为可执行文件。

与它相关,但不是导致问题的原因,将菜单路径与脚本菜单名称一起放在 GIMP 中已弃用 - 正确的做法是,在“日期”参数之后,只传递应该显示的名称在菜单中 - “同步” - 并在调用结束时将菜单路径作为命名参数传递,例如:menu="<Image>/Image/Blender-Gimp"

于 2012-10-04T02:42:12.223 回答