我需要为GIMP开发一个插件,并希望继续使用PyCharm进行Python编辑等。
仅供参考,我在Windows上。
指示PyCharm使用GIMP附带的Python解释器:
我还添加了gimpfu.py
的路径以消除from gimpfu import *
上的错误:
这可以修复导入时的错误,即使设置为Excluded
也是如此。
我尝试将此目录设置为Sources
,Resources
和Excluded
,但仍会出现RGBA-IMAGE
,TRANSPARENT_FILL
,{{1}等常量错误等等。
关于如何扭曲PyCharm为GIMP插件开发做好事的任何想法?
没有真正运行PyCharm的任何代码,它实际上只是用作一个很好的代码编辑器,便于修改控制等。
答案 0 :(得分:4)
当您发现此变量是.pyd
文件(Python的dll files)的一部分时。 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(在项目首选项中)。有关详细手册,请参阅this link。