12

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

仅供参考,我在 Windows 上。

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

项目口译员

我还添加了一条路径来gimpfu.py消除以下错误from gimpfu import *

在此处输入图像描述

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

我尝试将此目录设置为Sources,Resources并且Excluded仍然得到诸如RGBA-IMAGE, TRANSPARENT_FILL,NORMAL_MODE等常量的错误。

在此处输入图像描述

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

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

4

1 回答 1

4

如您所见,此变量是.pyd文件的一部分( Python 的dll 文件)。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(在项目首选项中)。有关详细手册,请参阅此链接

于 2016-03-13T20:37:14.927 回答