Подтвердить что ты не робот

Как использовать PyCharm для разработки плагинов GIMP?

Мне нужно разработать плагин для GIMP и хотел бы остаться с PyCharm для редактирования Python и т.д.

FYI, я нахожусь в Windows.

После указания PyCharm использовать интерпретатор Python, включенный в GIMP:

Project interpreter

Я также добавил путь к gimpfu.py, чтобы избавиться от ошибки на from gimpfu import *:

введите описание изображения здесь

Это исправляет ошибку при импорте, даже если установлено значение Excluded.

Я экспериментировал с настройкой этого каталога на Sources, Resources и Excluded и по-прежнему получал ошибки для констант, таких как RGBA-IMAGE, TRANSPARENT_FILL, NORMAL_MODE и т.д.

введите описание изображения здесь

Любая идея о том, как сгладить PyCharm в игре для разработки плагина GIMP?

Не работает какой-либо код из PyCharm, он действительно используется как хороший редактор кода, облегчает контроль версий и т.д.

4b9b3361

Ответ 1

Как вы находите, эти переменные являются частью файлов .pyd (dll files для Python). PyCharm не может получать подписи для содержимого этих файлов.

Для встроенных Python (например, abs, all, any и т.д.) PyCharm имеет собственные .py файлы, которые используются только для подписей и документов. Вы можете увидеть это, если вы нажмете на некоторые из этих функций и перейдите к нему:

введите описание изображения здесь

PyCharm откроет файл builtins.py в папке со следующим содержимым:

def abs(*args, **kwargs): # real signature unknown
    """ Return the absolute value of the argument. """
    pass

def all(*args, **kwargs): # real signature unknown
    """
    Return True if bool(x) is True for all values x in the iterable.

    If the iterable is empty, return True.
    """
    pass

def any(*args, **kwargs): # real signature unknown
    """
    Return True if bool(x) is True for any x in the iterable.

    If the iterable is empty, return False.
    """
    pass

Как вы видите, функции определены и документированы, но не имеют реализации, потому что их реализация создана с помощью C и помещена где-то в двоичный файл.

Pycharm не может предоставить такую ​​оболочку для каждой библиотеки. Обычно люди, создавшие файлы .pyd, предоставляют свои обертки .py (например, модуль PyQt: нет встроенной реализации python, просто подписи).

Похоже, у Gimp нет такой оболочки для некоторых переменных. Единственный способ, который я вижу, - создать какую-то собственную оболочку вручную. Например, создайте gimpfu_signatures.py со следующим содержимым:

RGBA_IMAGE = 1
TRANSPARENT_FILL = 2
NORMAL_MODE = 3

И импортируйте его во время создания плагина:

from gimpfu import *
from gimpfu_signatures import *  # comment on release

Не элегантный, но лучше ничего.

...

Еще одно примечание о пути gimpfu.py. Если я правильно понял, вы просто добавили этот путь к проекту. Он может работать, но правильный способ - добавить его в проект PYTHONPATH (в настройках проекта). Подробнее см. эту ссылку.