mar*_*n's 11 python gimp pycharm gimpfu
我需要为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文件的一部分(Python 的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
Run Code Online (Sandbox Code Playgroud)
如您所见,函数已定义并记录,但没有实现,因为它们的实现是用 C 创建的,并放置在二进制文件中的某个位置。
Pycharm 无法为每个库提供这样的包装器。.pyd通常创建文件的人会提供他们的.py包装器(例如,PyQt 模块:没有本机 python 实现,只有签名)。
看起来 Gimp 没有对某些变量进行这样的包装。我看到的唯一方法是手动创建某种自己的包装器。例如,gimpfu_signatures.py使用以下内容创建:
RGBA_IMAGE = 1
TRANSPARENT_FILL = 2
NORMAL_MODE = 3
Run Code Online (Sandbox Code Playgroud)
并在创建插件时导入它:
from gimpfu import *
from gimpfu_signatures import * # comment on release
Run Code Online (Sandbox Code Playgroud)
不优雅,但总比没有好。
...
gimpfu.py关于的路径还有一个注释。如果我理解正确的话,您刚刚将此路径添加到项目中。它可能有效,但正确的方法是将其添加到项目的 PYTHONPATH (在项目首选项中)。请参阅此链接以获取详细手册。
| 归档时间: |
|
| 查看次数: |
649 次 |
| 最近记录: |