我最近从2.8升级到了2.10 GIMP,看来导入自定义(相对)*。py文件的所有插件都不再起作用。我剖析了代码,这不是“ path_tools.py”文件的内容,这只是尝试导入自定义模块的行为(即使它是一个空文件,仍然无法使用)。没有这一行代码,它会很好地显示在GIMP中:
from path_tools import *
插件和path_tools.py都在同一文件夹中
\ AppData \ Roaming \ GIMP \ 2.10 \ plugins
我尝试通过添加句点来使用显式相对
from .path_tools import *
from ..path_tools import *
from ...path_tools import *
etc.
我尝试通过在文件底部添加一个空的GIMP效果将文件转换为插件,以查看GIMP是否只是以某种方式忽略了我的文件
def path_tools(img, drw):
return
register(
"python-fu-path-tools",
"Path Tools",
"",
[...]
然后在命令提示符下打开GIMP
"c:\program files\gimp 2\bin\gimp-2.10" --verbose --console-messages
对于每个不会加载的插件,它只是给了我很多这样的信息:
Querying plug-in: 'C:\Users\ \AppData\Roaming\GIMP\2.10\plug-ins\path_tools.py'
c:\program files\gimp 2\bin\gimp-2.10: LibGimpBase-WARNING: gimp-2.10: gimp_wire_read(): error
但这些似乎是警告,尤其是由于另一个我无法加载的插件存在此实际错误,出于类似的原因,我猜测:
GIMP-Error: Unable to run plug-in "export-ALL.py"
与顶部的这些警告有关吗?
Parsing 'c:\program files\gimp 2\lib\gimp\2.0\interpreters\pygimp.interp'
GIMP-Warning: Bad interpreter referenced in interpreter file c:\program files\gimp 2\lib\gimp\2.0\interpreters\pygimp.interp: python
GIMP-Warning: Bad binary format string in interpreter file c:\program files\gimp 2\lib\gimp\2.0\interpreters\pygimp.interp
我只是不知道发生了什么或该怎么做。有没有我可以放置文件的目录,插件可以看到该目录?因为它确实可以导入常规模块,例如“ sys”,“ os”。
(抱歉,这是一个非常愚蠢的问题,我仅将Python用于GIMP插件。)
答案 0 :(得分:1)
似乎在Gimp 2.10中嵌入的Python解释器使用@IBAction sliderValueChanged
作为路径分隔符,而在Windows上Gimp 2.10使用// ...
let maxSum = 20
// ...
@IBAction func sliderValueChanged(_ sender: UISlider) {
let sum = slider1.value + slider2.value + slider3.value + slider4.value // better: use outlet collection
if (sum > maxSum) {
let overflow = sum - maxSum
sender.value = sender.value - overflow
}
}
。
此问题已在here中进行了讨论。
创建具有以下内容的名为/
的文件似乎可以解决此问题。
\
答案 1 :(得分:0)
您可以在导入模块之前将运行文件的包含目录的路径入侵到sys.path
中:
import os
import sys
sys.path.append(os.dirname(__file__))
import path_tools