Gimp:почему я не могу это зарегистрировать?
Вопрос
Я пишу дополнение для 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()
Это действительно странно...
Решение
Вы не сказали, какую ошибку вы получаете, но поскольку вы опубликовали свой исходный файл, я думаю, что могу догадаться об этом:GIMP ожидает, что его плагины будут исполняемы системой - и то, что сообщает системам Posix (включая Linux), что файл должен быть выполнен с помощью определенного интерпретатора или оболочки, - это строка shebang - строка, которая идет #!/usr/bin/env python
в вашем примере.
Эта строка, однако, должна быть Первый строка в вашем файле - #!
символы в нем должны быть первыми двумя символами в файле.Строка, обозначающая кодировку символа - # -*- coding: utf-8 -*-
должна идти после нее - это должна быть вторая строка в файле, никаких пустых строк между ними).
И, наконец, обязательно установите скрипт как исполняемый, запустив "chmod a + x " в файле Python.
связанный с этим, но не являющийся причиной проблемы, ввод пути к меню вместе с именем меню сценария устарел в GIMP - правильный способ сделать это - после параметра "дата" передать только имя, которое должно отображаться в меню - "Синхронизация" - и передать путь к меню в качестве именованного параметра в конце вызова, например: menu="<Image>/Image/Blender-Gimp"