如何使用 PyCharm 进行 GIMP 插件开发?
How to use PyCharm for GIMP plugin development?
我需要为 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 的任何代码,它实际上只是用作一个不错的代码编辑器,便于修订控制等
如您所见,此变量是 .pyd
文件的一部分(dll files 对应 Python)。 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。
我需要为 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 的任何代码,它实际上只是用作一个不错的代码编辑器,便于修订控制等
如您所见,此变量是 .pyd
文件的一部分(dll files 对应 Python)。 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。