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

时间:2016-03-05 19:57:28

标签: python pycharm gimp gimpfu

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

仅供参考,我在Windows上。

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

Project interpreter

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

enter image description here

这可以修复导入时的错误,即使设置为Excluded也是如此。

我尝试将此目录设置为SourcesResourcesExcluded,但仍会出现RGBA-IMAGETRANSPARENT_FILL,{{1}等常量错误等等。

enter image description here

关于如何扭曲PyCharm为GIMP插件开发做好事的任何想法?

没有真正运行PyCharm的任何代码,它实际上只是用作一个很好的代码编辑器,便于修改控制等。

1 个答案:

答案 0 :(得分:4)

当您发现此变量是.pyd文件(Python的dll files)的一部分时。 PyCharm无法获取此文件内容的签名。

对于Python内置函数(如absallany等),PyCharm拥有自己的.py文件,仅用于签名和文档。你可以看到它,如果你点击这些功能,并转到它的声明:

enter image description here

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