如何使用 PyCharm 进行 GIMP 插件开发?

How to use PyCharm for GIMP plugin development?

我需要为 GIMP 开发一个插件,并希望继续使用 PyCharm 进行 Python 编辑等

仅供参考,我在 Windows。

在指示 PyCharm 使用 GIMP 附带的 Python 解释器后:

我还添加了 gimpfu.py 的路径以消除 from gimpfu import * 上的错误:

这修复了导入错误,即使设置为 Excluded

我尝试将此目录设置为 SourcesResourcesExcluded,但对于 RGBA-IMAGETRANSPARENT_FILLNORMAL_MODE,等等

关于如何扭曲 PyCharm 以适合 GIMP 插件开发的任何想法?

不是 运行 来自 PyCharm 的任何代码,它实际上只是用作一个不错的代码编辑器,便于修订控制等

如您所见,此变量是 .pyd 文件的一部分(dll files 对应 Python)。 PyCharm 无法获取此文件内容的签名。

对于 Python 内置函数(如 absallany 等)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(在项目首选项中)。有关详细手册,请参阅 this link