gtk 和 webkit 的奇怪错误

问题描述 投票:0回答:1

好吧,我正在为我的作品集开发一个用 gtk 和 webkit 制作的简单 Web 浏览器,我决定使用 gnome 构建器 ide 中的 gnome 应用程序模板并且它可以工作,但是当我尝试将 webkit2 导入到我的 main.py 文件时,我收到此错误:

ImportError: Requiring namespace 'Gtk' version '3.0', but '4.0' is already loaded

这是我要导入的所有内容

import sys
import gi

gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1')

from gi.repository import Gtk, Gio, Adw
from .window import WebnavigatorWindow, AboutDialog
from gi.repository import WebKit2

我不知道为什么会发生这种情况,有人可以解释一下吗?

python gtk webkit gnome
1个回答
0
投票

我知道这是一个老问题,但我还是尝试回答一下。所以,Adwaita 和 GTK 4 不会造成任何问题。对于WebKit2,错误在于它使用GTK 3,因此,情况相当于以下代码:

import gi
gi.require_version("Gtk","4.0")
from gi.repository import Gtk
gi.require_version("Gtk","3.0")

解决方案:

a) 导入WebKit而不是WebKit2,虽然它属于不稳定分支,但如果你想保留GTK 4,这里描述的解决方案是唯一的。代码是这样的:

import gi
gi.require_version("Gtk","4.0")
gi.require_version("Adw","1")
gi.require_version("WebKit","6.0") # to avoid ugly warnings about "ensuring that the right version gets loaded"
from gi.repository import Gtk, Gio, Adw
from .window import WebnavigatorWindow, AboutDialog
from gi.repository import WebKit

b) 不要使用 Adwaita 1,仍使用 GTK 3。可能这是错误的答案。

© www.soinside.com 2019 - 2024. All rights reserved.