Запуск питона GIMP - PullRequest
0 голосов
/ 24 мая 2018

У меня есть скрипт blackandwhite.py, помещенный в папку «C: \ Users \ Marcin.gimp-2.8 \ plug-ins».В качестве аргументов используются две директории.Он прекрасно работает, когда выполняется из меню GIMP или из консоли python-fu с помощью:

pdb.python_fu_black_and_white("L:\PICS", "L:\OUT");

Однако, когда я пытаюсь выполнить его из командной строки с помощью

gimp-console-2.8.exe -df --batch-interpreter python-fu-eval -b "from gimpfu import *;pdb.python_fu_black_and_white(0,"L:\PICS", "L:\OUT")" -b "pdb.gimp_quit(1)"

Это дает "В пакетной команде произошла ошибка выполнения ".Кто-нибудь знает, как это сделать правильно?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

В Windows самый простой способ - заключить токен CMD.EXE в двойные кавычки и использовать одинарные кавычки для кода Python (*):

gimp-console-2.8.exe -df --batch-interpreter python-fu-eval -b "from gimpfu import *;pdb.python_fu_black_and_white(0,'L:/PICS', 'L:/OUT')" -b "pdb.gimp_quit(1)"

Вы можете избежать множества проблем, используяпрямая косая черта как разделитель файлов, Windows принимает их везде, кроме параметров командной строки (но здесь они находятся в строках Python).

Кроме того, вам не нужно регистрировать свой скрипт как плагин, если вы используете его тольков партии.См. здесь для примера кода.

(*) В Linux / macOS сделайте обратное: одинарные кавычки вокруг параметров командной строки, двойные кавычки для строк Python.

0 голосов
/ 24 мая 2018

Посмотрите, как ваша команда выделяет синтаксис в переполнении стека.

Я оберну его, чтобы было легче видеть:

gimp-console-2.8.exe -df --batch-interpreter python-fu-eval -b \
    "from gimpfu import *;pdb.python_fu_black_and_white(0,"L:\PICS", "L:\OUT")" \
    -b "pdb.gimp_quit(1)"  #                                  ^         ^
                           #                                 here and here

Вы вкладываете двойные кавычки.Вам нужно избегать их или, что еще лучше, заменить один набор одинарными кавычками:

gimp-console-2.8.exe -df --batch-interpreter python-fu-eval -b \
    'from gimpfu import *;pdb.python_fu_black_and_white(0,"L:\PICS", "L:\OUT")' \
    -b "pdb.gimp_quit(1)"
...