为什么我的 GIMP Python 插件不能在我的 Ubuntu Linux 盒子上运行?
Why Does My GIMP Python Plug-In Not Work on My Ubuntu Linux Box?
我正在尝试为 GNU 图像处理插件编写自己的 Python 插件。我在 URL: http://gimpbook.com/scripting/slides/index.html 上学习了本教程。我更改了一些变量名称并将脚本命名为不同的名称,但基本上它是相同的脚本。
从交互式 GIMP Python shell 调用该脚本时该脚本有效。我使用鼠标进行访问:“Filters -> Python-Fu -> Console”。这里 hello_world()
函数起作用了。
但是,当我将插件放入 .gimp2.8/plugins/
文件夹或 /usr/lib/gimp/2.0/plug-ins
后,我无法在 Plug-In Browser
中看到插件 Help -> Plug-In Browser
。有谁知道我错过了什么?
此致,
我的 Python GIMP 插件的源代码如下...
#! /usr/bin/env python
from gimpfu import *
def hello_world(initstr, font, size, color):
img = gimp.Image(1, 1, RGB)
gimp.set_foreground(color)
layer = pdb.gimp_text_fontname(img, None, 0, 0, initstr, 10, True, size, PIXELS, font)
img.resize(layer.width, layer.height, 0, 0)
gimp.Display(img)
register(
"pythonic_easier_gimp",
"Hello Gimp Image", "Hello gimp image",
"My Name", "My Name", "2015",
"Easier gimp...",
"",
[
(PF_STRING, "string", "String", 'Hello, Gimp!'),
(PF_FONT, "font", "Font face", "Sans")
(PF_SPINNER, "size", "Font size", 50, (1, 3000, 1)),
(PF_COLOR, "color", "Text color", (1.0, 0.0, 0.0))
],
[],
easier_gimp, menu="<Image>/File/Create")
main()
如果脚本没有显示在菜单上,这意味着上面对 "register" 和 "main" 的调用不是 运行。一种可能是您没有将 Python 文件标记为可执行权限。 (查看文件属性,或者运行chmod 777 myfile.py
就可以了)
另一种可能性是 Python 语法错误 - 给出列表可能很难发现 - 要检查语法错误,请尝试 运行 正常运行脚本 Python 来自 shell 的程序:$ python myfile.py
- 应该会产生一个 ImportError
。如果您看到 SyntaxError
,请改为修复它。
最后,安装好插件后,从终端而不是菜单启动它 - 如果 GIMP 找到了您的插件但偶然发现了错误,它应该显示 Wire read error
在终端输出上:它也可能表示 Python 语法错误,或对 register
的错误调用(参数太少或太多)。由于此时您已经排除了语法错误,请仔细检查您的参数计数是否为 register
)
到目前为止,当您已修复内容时,它应该会显示在菜单中。
我找到了解决办法!网上看了几个教程,换了个开发环境,Eclipse使用PyDev插件。 PyDev 能够指出过于复杂的 register()
函数中的语法错误。
#! /usr/bin/env python
from gimpfu import *
def wonka():
img = gimp.Image(1, 1, RGB)
gimp.set_foreground('purple')
layer = pdb.gimp_text_fontname(img, None, 0, 0, 'Willy Wonka!', 10, True, 90, PIXELS, 'comic sans')
img.resize(layer.width, layer.height, 0, 0)
gimp.Display(img)
register(
"wonka",
"Prints a message from Willy Wonka",
"Prints a message from Willy Wonka",
"User3870315",
"User3870315",
"2015",
"<Toolbox>/Tools/Wonka",
"",
[],
[],
wonka)
main()
这显示在 Filters -> Python-Fu -> Console -> Browse
中。它还显示在 Tools
下的工具栏中。
这些链接有帮助:
2 个代码问题对我来说很突出 function/call 不匹配和缺少定界逗号
(PF_FONT, "font", "Font face", "Sans") #<--missing comma
def hello_world(initstr, font, size, color): #<--Defined function hello_world()
easier_gimp, menu="<Image>/File/Create") #<--plugin calls easier_gimp()
所以添加逗号并将 hello_world
重命名为 easier_gimp
允许插件工作。
#! /usr/bin/env python
from gimpfu import *
def easier_gimp(initstr, font, size, color):
img = gimp.Image(1, 1, RGB)
gimp.set_foreground(color)
layer = pdb.gimp_text_fontname(img, None, 0, 0, initstr, 10, True, size, PIXELS, font)
img.resize(layer.width, layer.height, 0, 0)
gimp.Display(img)
register(
"pythonic_easier_gimp",
"Hello Gimp Image", "Hello gimp image",
"My Name", "My Name", "2015",
"Easier gimp...",
"",
[
(PF_STRING, "string", "String", 'Hello, Gimp!'),
(PF_FONT, "font", "Font face", "Sans"),
(PF_SPINNER, "size", "Font size", 50, (1, 3000, 1)),
(PF_COLOR, "color", "Text color", (1.0, 0.0, 0.0))
],
[],
easier_gimp, menu="<Image>/File/Create")
main()
中创建了基于 Python 的 Hello World GIMP 插件示例
我正在尝试为 GNU 图像处理插件编写自己的 Python 插件。我在 URL: http://gimpbook.com/scripting/slides/index.html 上学习了本教程。我更改了一些变量名称并将脚本命名为不同的名称,但基本上它是相同的脚本。
从交互式 GIMP Python shell 调用该脚本时该脚本有效。我使用鼠标进行访问:“Filters -> Python-Fu -> Console”。这里 hello_world()
函数起作用了。
但是,当我将插件放入 .gimp2.8/plugins/
文件夹或 /usr/lib/gimp/2.0/plug-ins
后,我无法在 Plug-In Browser
中看到插件 Help -> Plug-In Browser
。有谁知道我错过了什么?
此致,
我的 Python GIMP 插件的源代码如下...
#! /usr/bin/env python
from gimpfu import *
def hello_world(initstr, font, size, color):
img = gimp.Image(1, 1, RGB)
gimp.set_foreground(color)
layer = pdb.gimp_text_fontname(img, None, 0, 0, initstr, 10, True, size, PIXELS, font)
img.resize(layer.width, layer.height, 0, 0)
gimp.Display(img)
register(
"pythonic_easier_gimp",
"Hello Gimp Image", "Hello gimp image",
"My Name", "My Name", "2015",
"Easier gimp...",
"",
[
(PF_STRING, "string", "String", 'Hello, Gimp!'),
(PF_FONT, "font", "Font face", "Sans")
(PF_SPINNER, "size", "Font size", 50, (1, 3000, 1)),
(PF_COLOR, "color", "Text color", (1.0, 0.0, 0.0))
],
[],
easier_gimp, menu="<Image>/File/Create")
main()
如果脚本没有显示在菜单上,这意味着上面对 "register" 和 "main" 的调用不是 运行。一种可能是您没有将 Python 文件标记为可执行权限。 (查看文件属性,或者运行chmod 777 myfile.py
就可以了)
另一种可能性是 Python 语法错误 - 给出列表可能很难发现 - 要检查语法错误,请尝试 运行 正常运行脚本 Python 来自 shell 的程序:$ python myfile.py
- 应该会产生一个 ImportError
。如果您看到 SyntaxError
,请改为修复它。
最后,安装好插件后,从终端而不是菜单启动它 - 如果 GIMP 找到了您的插件但偶然发现了错误,它应该显示 Wire read error
在终端输出上:它也可能表示 Python 语法错误,或对 register
的错误调用(参数太少或太多)。由于此时您已经排除了语法错误,请仔细检查您的参数计数是否为 register
)
到目前为止,当您已修复内容时,它应该会显示在菜单中。
我找到了解决办法!网上看了几个教程,换了个开发环境,Eclipse使用PyDev插件。 PyDev 能够指出过于复杂的 register()
函数中的语法错误。
#! /usr/bin/env python
from gimpfu import *
def wonka():
img = gimp.Image(1, 1, RGB)
gimp.set_foreground('purple')
layer = pdb.gimp_text_fontname(img, None, 0, 0, 'Willy Wonka!', 10, True, 90, PIXELS, 'comic sans')
img.resize(layer.width, layer.height, 0, 0)
gimp.Display(img)
register(
"wonka",
"Prints a message from Willy Wonka",
"Prints a message from Willy Wonka",
"User3870315",
"User3870315",
"2015",
"<Toolbox>/Tools/Wonka",
"",
[],
[],
wonka)
main()
这显示在 Filters -> Python-Fu -> Console -> Browse
中。它还显示在 Tools
下的工具栏中。
这些链接有帮助:
2 个代码问题对我来说很突出 function/call 不匹配和缺少定界逗号
(PF_FONT, "font", "Font face", "Sans") #<--missing comma
def hello_world(initstr, font, size, color): #<--Defined function hello_world()
easier_gimp, menu="<Image>/File/Create") #<--plugin calls easier_gimp()
所以添加逗号并将 hello_world
重命名为 easier_gimp
允许插件工作。
#! /usr/bin/env python
from gimpfu import *
def easier_gimp(initstr, font, size, color):
img = gimp.Image(1, 1, RGB)
gimp.set_foreground(color)
layer = pdb.gimp_text_fontname(img, None, 0, 0, initstr, 10, True, size, PIXELS, font)
img.resize(layer.width, layer.height, 0, 0)
gimp.Display(img)
register(
"pythonic_easier_gimp",
"Hello Gimp Image", "Hello gimp image",
"My Name", "My Name", "2015",
"Easier gimp...",
"",
[
(PF_STRING, "string", "String", 'Hello, Gimp!'),
(PF_FONT, "font", "Font face", "Sans"),
(PF_SPINNER, "size", "Font size", 50, (1, 3000, 1)),
(PF_COLOR, "color", "Text color", (1.0, 0.0, 0.0))
],
[],
easier_gimp, menu="<Image>/File/Create")
main()
中创建了基于 Python 的 Hello World GIMP 插件示例