我需要为GIMP开发一个插件,并希望继续使用PyCharm进行编辑等等。
我在Windows上。
在指导PyCharm使用GIMP附带的Python解释器之后:

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

这修复了导入上的错误,即使设置为Excluded也是如此。
我尝试将这个目录设置为Sources、Resources和Excluded,但是仍然会得到诸如RGBA-IMAGE、TRANSPARENT_FILL、NORMAL_MODE等常量的错误。

对如何使PyCharm为GIMP插件开发发挥良好的作用,有什么想法吗?
并不是真的从PyCharm运行任何代码,它实际上只是作为一个很好的代码编辑器,方便修订控制,等等。
发布于 2016-03-13 20:37:14
正如您所发现的,这个变量是.pyd文件(dll文件的dll文件)的一部分。PyCharm无法获得该文件内容的签名。
对于Python (如abs、all、any等)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 (在项目首选项中)。有关详细手册,请参阅此链接。
https://stackoverflow.com/questions/35819129
复制相似问题