2013-06-27 2 views
8

this Я следовал учебник и это то, что я придумал до сих пор:Gimp: питон скрипт не отображается в меню

#!/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() 

Но плагин woun't отображаться в меню вкладной (я использую КАНИТЕЛЬ 2.8). Предоставлен файл chmod a + x. Возможно, проблема с файлом: /.gimp-2.8/plug-ins/src/resize.py? Src происходит из-за затмения.

ответ

10

Если сценарий имеет синтаксические ошибки, он не будет отображаться в меню на всех - выше код имеет синтаксическую ошибку на самой первой строке кода from gimpfu import* (отсутствующий пробел перед *)

Один простой способ проверить синтаксические ошибки - попытаться запустить сценарий как самостоятельный (он не удастся, если он не сможет найти модуль «gimpfu» вне GIMP, но к этому моменту синтаксис разобран - Другим способом является использование утилиты lint, такой как pyflakes для проверки синтаксиса.

Другие ошибки времени выполнения, которые могут содержать ваши сценарии, должны появляться во всплывающем окне при запуске он из GIMP - на этом этапе вы можете обновить свой скрипт и повторить его из меню. Если вы изменяете параметры ввода или вывода из своего сценария, вы должны перезапустить GIMP.

И да, «расположение файла» это проблема - вы должны поместить свой код в каталоге, указанном для плагинов в настройках в GIMP - по умолчанию они являются ~/.gimp-2.8/plug-ins/ или /usr/lib[64]/gimp/2.0/plug-ins - без " src "- если ваша IDE не позволяет указать, где разместить ваши файлы, вы должны сами их скопировать или добавить src dirs в настройках GIMP.

+0

Сделал некоторые изменения: добавил недостающее пространство и перевел скрипт в '/ usr/lib/gimp/2.0/plug-ins'. Теперь он появляется в меню. Благодарю. – kyng

+4

Еще один совет для отладки: запустите gimp из командной строки, и вы увидите, какие сообщения об ошибках появляются. – kyng

+5

Убедитесь, что сценарий является исполняемым. Запуск '$ chmod + x plugin.py' исправил проблему для меня. – arunkumar