Python-fu 脚本未显示在 Gimp 菜单中

Python-fu script not showing in Gimp menu

我一直在 Gimp: python script not showing in menu 但它对我没有帮助。这是我逐步尝试的方法:

1. 我是 运行ning Gimp 2.8.16 on Mac OS X 10.9.5 从命令行gimp 因为我的 .bashrc 文件包含

alias gimp='/Applications/GIMP.app/Contents/MacOS/GIMP --verbose --console-messages '

我查看了终端输出,我看到了很多消息,但没有弹出任何问题(您要在此处转储吗?)。我一开始就看到了 Enabling internal Python... 所以应该不错。

2. Filters > Python-Fu > Console 调出控制台,with

GIMP 2.8.16 Python Console
Python 2.7.8 (default, Dec  5 2015, 09:38:54) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
>>> 

—因此,python 似乎再次起作用。

3. 因为 this tip here 我尝试了 运行 一个 Python 脚本。我打开了一张图片,然后 运行 滤镜 > 渲染 > 云 > 雾。工作起来很有魅力——在控制台中,当 window 被启动时,我确实收到了一些类型转换警告:

** (foggify.py:30312): WARNING **: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags'
** (foggify.py:30312): WARNING **: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags'
** (foggify.py:30312): WARNING **: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags'

我搜索了我的电脑,foggify.py 实际上在 /Applications/GIMP.app/Contents/Resources/lib/gimp/2.0/plug-ins/foggify.py 中,所以这证明 Python 可以正常工作,但不能证明它正在加载脚本。我有点困惑,因为 foggify.py 只有 77 行,而不是 30312。

4. GIMP > Preferences > Folders > Scripts 显示 GIMP 应该为脚本加载以下目录:

/Users/julio/Library/Application Support/GIMP/2.8/scripts
/Applications/GIMP.app/Contents/Resources/share/gimp/2.0/scripts

我没有使用 /Applications/GIMP.app/Contents/Resources/share/gimp/2.0/scripts 但它有很多 *.scm 文件(所以,可能都在 Scheme 中)。我自己从来没有在这里添加任何东西。

5. 我只有一个脚本:ls -l "/Users/julio/Library/Application Support/Gimp/2.8/scripts" yields

total 8
-rwxr-xr-x  1 julio  staff  654 25 Jun 16:25 minimal.py

(仅此而已)

6. 这是我的 minimal.py:

#!/usr/bin/env python

from gimpfu import *

def minimal():
    pass

register(
    "python_fu_minimal",                                    # plugin name
    "Minimal plug-in example",                              # blurb (short description)
    "Show the smallest possible Python plug-in example",    # help (long description)
    "Michael Schumacher",                                   # author
    "Michael Schumacher",                                   # copyright info
    "2007",                                                 # date
    "<Image>/Tools/Minimal",                                # menu position and label
    None,                                                   # image types accepted
    [],                                                     # input parameters
    [],                                                     # output (results)
    minimal                                                 # method to call
    )

main()

7. I 运行 gimp with minimal.py already in the scripts 上面指示的目录,我在“工具”菜单中看不到任何“最小”项。

我也试过下面的变体,也没有用:

#!/usr/bin/env python

from gimpfu import *

def minimal():
    pass

register(
    "python_fu_minimal",                                    # plugin name
    "Minimal plug-in example",                              # blurb (short description)
    "Show the smallest possible Python plug-in example",    # help (long description)
    "Michael Schumacher",                                   # author
    "Michael Schumacher",                                   # copyright info
    "2007",                                                 # date
    "Minimal",                                              # menu position and label
    None,                                                   # image types accepted
    [],                                                     # input parameters
    [],                                                     # output (results)
    minimal,                                                # method to call
    menu="<Image>/Tools"
    )

main()

Python“脚本”在技术上是“插件”,因此应位于“插件”子目录中(/Users/julio/Library/Application Support/GIMP/2.8/plug-ins) .

2.10 更新:Gimp 2.10 仍然支持 2.8 方式,.py 文件放在 plug-ins 目录中,但它也支持 .py(实际上是主插件可执行文件)位于 plug-ins 的子目录中,该目录具有相同的名称,以及它可能需要的其他文件(如果有)。据我所知,这将是未来 Gimp 版本中唯一接受的方式。

{Your Gimp profile}
└── plug-ins
    ├── some_2.08_plugin.py
    ├── another_2.08_plugin.py
    ├── some_plugin_for_2.10_and_beyond
    │   ├── some_plugin_for_2.10_and_beyond.py
    │   └── some_python_module.py
    └── another_plugin_for_2.10_and_beyond
        ├── another_plugin_for_2.10_and_beyond.py
        └── another_auxiliary_file.dat