Как вывести информацию на консоль в скрипте Gimp Python?

Я только начал изучать скрипты Gimp с использованием Python и задавался вопросом, как вывести текст на консоль? Я использую версию 2.7.5 на Windows 7.

Я попробовал функцию print, но она ничего не записывает в консоль python-fu или консоль dev, которая запускается с Gimp. Есть ли функция, которую я должен использовать, чтобы сделать это? или это проблема с версией 2.7.5? Я нашел несколько упоминаний о «gimp-message», но, похоже, это функция, используемая в Scheme (Script-fu)

Спасибо!

(также опубликовано как темаВот)

Ответы на вопрос(3)

й канал GIMP - возможно, в Windows вам придется запускать сам GIMP из командной строки, а не запускать его из меню.

 greggo18 янв. 2013 г., 19:24
(по крайней мере, в Linux :) Python print идет в stdout (по крайней мере, в sys.stdout, который больше не является fd 1); и в консоли Python GUI, которая идет по трубе к окну; в пакетном прогоне это идет к стандартному выходу gimp. Gimp запускает Python как отдельный процесс (не встроенный); попробуйте это: gimp -i --batch-interpreter = python-fu-eval -b 'import os; os.system ("ps% s"% os.getpid ()); pdb.gimp_quit (1)»

Мы можем перенаправить stdout и stderr.

#!/usr/bin/env python
# coding: iso-8859-1

from gimpfu import *
import sys
sys.stderr = open( 'c:\\temp\\gimpstderr.txt', 'w')
sys.stdout = open( 'c:\\temp\\gimpstdout.txt', 'w')

def MyUsefulFilter(img, drw):

    # these print redirected to gimpstdout.txt
    print 'hello world'
    print img
    print drw

    # this error redirected to gimpstderr.txt
    x = 0
    y = 1/x


    pdb.gimp_image_undo_group_start(img)
    # useful code here
    pdb.gimp_image_undo_group_end(img)


register(
    "useful_filter",
    "very useful indeed",
    "",
    "MF",
    "GPL",
    "2013",
    "<Image>/Filters/Photo/Useful Filter",
    "RGB*",
    [],
    [],
    MyUsefulFilter)

main()
 vish03 янв. 2014 г., 07:44
спасибо за решение моей проблемы. !!
Решение Вопроса

Использование:

pdb.gimp_message('This is displayed as a message')

Однако ... это показывает в консоли ошибок, если окно консоли открыто, иначе в диалоге сообщений с кнопкой OK, ожидающего подтверждения пользователя. Таким образом, вы можете действительно использовать его только один или два раза в сценарии ...

Существует также

pdb.gimp_progress_set_text('This goes to the status bar')

Это относится к строке состояния (IIRC) и к диалоговому окну прогресса плагина, если оно есть, но это скорее временно.

Вы также можете использовать простые операторы печати для отладки. В Linux их вывод отображается в терминале, с которого вы запустили Gimp, а в Windows они могут появиться в gimp-console, если вы запустили Gimp таким образом (поэтому обычный пользователь ничего не увидит, если вы действительно не скажете им, где искать) ,

Ваш ответ на вопрос