GIMP 2.10 Python - Как импортировать пользовательский модуль? - PullRequest
0 голосов
/ 17 января 2019

Я недавно обновился до 2.10 GIMP с 2.8, и кажется, что ни один из моих плагинов, которые импортировали пользовательские (относительные) * .py файлы, больше не работает. Я проанализировал код, и это не содержимое файла «path_tools.py», это просто попытка импортировать пользовательский модуль (даже если это пустой файл, он все равно не будет работать). Без этой строки кода он отображается в GIMP просто отлично:

from path_tools import *

Плагин и path_tools.py находятся в одной папке

\ AppData \ Roaming \ GIMP \ 2,10 \ плагинов

Я пытался использовать явный родственник, добавляя точки

from .path_tools import *
from ..path_tools import *
from ...path_tools import *
etc.

Я попытался превратить файл в плагин, добавив пустой эффект GIMP внизу файла, чтобы проверить, не игнорирует ли GIMP мой файл каким-либо образом

def path_tools(img, drw):

    return


register(
    "python-fu-path-tools",
    "Path Tools",
    "",
    [...]

И, открыв GIMP в командной строке

 "c:\program files\gimp 2\bin\gimp-2.10" --verbose --console-messages

Это просто дает мне кучу таких сообщений для каждого плагина, который не загружается:

  Querying plug-in: 'C:\Users\ \AppData\Roaming\GIMP\2.10\plug-ins\path_tools.py'
  c:\program files\gimp 2\bin\gimp-2.10: LibGimpBase-WARNING: gimp-2.10: gimp_wire_read(): error

но это похоже на предупреждения, тем более что существует настоящая ошибка для другого плагина, который не загружается, по тем же причинам, которые я предполагаю:

  GIMP-Error: Unable to run plug-in "export-ALL.py"

Это связано с этими предупреждениями наверху?

Parsing 'c:\program files\gimp 2\lib\gimp\2.0\interpreters\pygimp.interp'
GIMP-Warning: Bad interpreter referenced in interpreter file c:\program files\gimp 2\lib\gimp\2.0\interpreters\pygimp.interp: python

GIMP-Warning: Bad binary format string in interpreter file c:\program files\gimp 2\lib\gimp\2.0\interpreters\pygimp.interp

Я просто не знаю, что происходит или что делать. Есть ли каталог, в который я могу поместить файл, чтобы он был виден плагинам? Потому что он работает для импорта обычных модулей, таких как 'sys', 'os'.

(Извините, если это действительно глупый вопрос, я использовал Python только для плагинов GIMP.)

1 Ответ

0 голосов
/ 17 января 2019

Похоже, что интерпретатор Python, встроенный в Gimp 2.10, использует / в качестве разделителя пути, тогда как Gimp 2.10 использует \ в Windows.

Вопрос обсуждается здесь .

Создание файла с именем C:\Program Files\GIMP 2\32\lib\python2.7\sitecustomize.py со следующим содержимым, похоже, решает проблему.

import sys
class Issue1542:
    def __del__ (self):
        if len (sys.argv[0]):
            from os.path import dirname
            sys.path[0:0] = [dirname (sys.argv[0])]
sys.argv = Issue1542 ()
...