首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PyCharm进行GIMP插件的开发?

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

Stack Overflow用户
提问于 2016-03-05 19:57:28
回答 1查看 1.1K关注 0票数 12

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

我在Windows上。

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

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

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

我尝试将这个目录设置为SourcesResourcesExcluded,但是仍然会得到诸如RGBA-IMAGETRANSPARENT_FILLNORMAL_MODE等常量的错误。

对如何使PyCharm为GIMP插件开发发挥良好的作用,有什么想法吗?

并不是真的从PyCharm运行任何代码,它实际上只是作为一个很好的代码编辑器,方便修订控制,等等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-13 20:37:14

正如您所发现的,这个变量是.pyd文件(dll文件dll文件)的一部分。PyCharm无法获得该文件内容的签名。

对于Python (如absallany等)PyCharm有自己的.py文件,仅用于签名和文档。如果您单击其中一些函数并转到它的声明中,您可以看到它:

PyCharm将在其文件夹中打开builtins.py文件,内容如下:

代码语言:javascript
复制
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

代码语言:javascript
复制
RGBA_IMAGE = 1
TRANSPARENT_FILL = 2
NORMAL_MODE = 3

并在创建插件时导入它:

代码语言:javascript
复制
from gimpfu import *
from gimpfu_signatures import *  # comment on release

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

..。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35819129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档