如何使用PyCharm开发GIMP插件?

2024-05-18 23:39:59 发布

您现在位置:Python中文网/ 问答频道 /正文

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

仅供参考,我在Windows上。在

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

Project interpreter

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

enter image description here

这将修复导入时的错误,即使设置为Excluded。在

我尝试将这个目录设置为SourcesResources和{},但是仍然会得到一些常量的错误,比如RGBA-IMAGETRANSPARENT_FILLNORMAL_MODE,等等

enter image description here

有什么想法可以让PyCharm在GIMP插件开发中发挥出色?在

它并不是真正运行PyCharm中的任何代码,它只是被用作一个不错的代码编辑器,方便修订控制等


Tags: 代码frompyimport路径插件编辑windows
1条回答
网友
1楼 · 发布于 2024-05-18 23:39:59

当您发现这些变量是.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

^{pr2}$

并在创建插件时导入:

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

不优雅,但总比什么都好。在

。。。在

关于gimpfu.py路径的另一个注意事项。如果我理解正确的话,您刚刚将此路径添加到项目中。它可能有用,但正确的方法是将其添加到项目的PYTHONPATH(在项目首选项中)。有关详细手册,请参见this link。在

相关问题 更多 >

    热门问题