Python WebKit2.JavascriptResult.get_value()抛出异常;TypeError:无法';找不到'的外部结构转换器;JavaScriptCore.Value'&引用;。

Python WebKit2.JavascriptResult.get_value()抛出异常;TypeError:无法';找不到'的外部结构转换器;JavaScriptCore.Value'&引用;。,python,webkit,gtk,pygobject,javascriptcore,Python,Webkit,Gtk,Pygobject,Javascriptcore,我正在编写一个基于python3+webkit2+gtk3的GUI。一切正常,但当我尝试在回调函数中使用WebKit2.WebView.run_javascript_finish(),获取返回值(一个WebKit2.JavascriptResult对象jetc),并使用WebKit2.JavascriptResult.get_value()导出值时,我收到了一个“类型错误:找不到'JavaScriptCore.value'的外部结构转换器” 我在导入上有一个“from gi.repository

我正在编写一个基于python3+webkit2+gtk3的GUI。一切正常,但当我尝试在回调函数中使用WebKit2.WebView.run_javascript_finish(),获取返回值(一个WebKit2.JavascriptResult对象jetc),并使用WebKit2.JavascriptResult.get_value()导出值时,我收到了一个“类型错误:找不到'JavaScriptCore.value'的外部结构转换器”

我在导入上有一个“from gi.repository import JavaScriptCore”,我不知道为什么会发生这个错误


ps:很抱歉我的英语很糟糕。

不幸的是,Python不支持使用JavaScriptCore库

gi.repository.JavaScriptCore
中的定义仅包括
JavaScriptCore.Value
JavaScriptCore.GlobalContext
的不透明定义,以便为使用这些类型的函数提供类型信息;您可以通过查看
/usr/share/gir-1.0/JavaScriptCore-4.0.gir
进行验证。但正如您所发现的,您实际上无法调用这些函数,因为没有关于如何将这些类型转换为本机Python对象的信息

我建议用C编写一个函数,它接收
WebKit2.JavaScriptResult
并从中获取所需的任何信息,然后将该函数导出到它自己的私有GIR库中。因此,您不会在Python代码中使用任何JavaScriptCore类型。这可能是它的样子:

from gi.repository import MyAppPrivate
# ...
def on_javascript_finish(obj, res):
    result = obj.run_javascript_finish(res)
    my_real_results = MyAppPrivate.process(result)

谢谢,C和GIR比我能处理的要复杂一些,但我很高兴能得到答案。