错误:要求命名空间'Gdk'版本'4.0',但已加载'3.0'

时间:2018-03-27 22:39:06

标签: ruby gtk3

我在笔记本电脑上安装了Linux。 Ubuntu Mate 17.10.1。我在我的主目录的子目录中安装了Ruby 2.5.0。当试图运行需要gtk3的Ruby程序时,我得到了这个:

Traceback (most recent call last):
    6: from /home/david/Public/zeta-code-example-1-laptop.rb:17:in `<main>'
    5: from /home/david/.gem/ruby/2.5.0/gems/gtk3-3.2.1/lib/gtk3.rb:40:in `const_missing'
    4: from /home/david/.gem/ruby/2.5.0/gems/gtk3-3.2.1/lib/gtk3.rb:64:in `init'
    3: from /home/david/.gem/ruby/2.5.0/gems/gdk3-3.2.1/lib/gdk3.rb:59:in `init'
    2: from /home/david/.gem/ruby/2.5.0/gems/gdk3-3.2.1/lib/gdk3/x11-loader.rb:21:in `load'
    1: from /home/david/.gem/ruby/2.5.0/gems/gobject-introspection-3.2.1/lib/gobject-introspection/loader.rb:37:in `load'
/home/david/.gem/ruby/2.5.0/gems/gobject-introspection-3.2.1/lib/gobject-introspection/loader.rb:37:in `require': Requiring namespace 'Gdk' version '4.0', but '3.0' is already loaded (GObjectIntrospection::RepositoryError::NamespaceVersionConflict)

我已经在我的桌面上使用类似的设置运行程序,没有任何问题。我在/home/david/.gem下安装了相应的宝石 我有许多其他需要gtk3的程序。我也得到了同样的错误。

另外,使用发行版中安装了相应gem的发行版Ruby(2.3),我得到了相同的结果。

我已经在网上搜索过相当多的内容,但没有发现任何相关内容。

任何人都知道这里发生了什么?提前谢谢。

2 个答案:

答案 0 :(得分:0)

错误消息表示版本冲突。请尝试以下方法。

转到应用程序的根目录并运行:

gem list gtk

查看您是否拥有所需的正确版本,以及是否还可以安装任何其他版本。也许那就试试吧:

gem uninstall gtk3
gem install gtk3

如果您仍然收到错误检查,看看您的应用加载的其他任何宝石是否需要不同的版本。作为测试可能会做

gem install pry

启动撬开会议

pry

来自撬壳:

要求'gtk3'    cd Gtk    show-method Loader#你应该看到一个像这样的方法:

def load
  self.version = "3.0"
   super("Gtk")
end

!!! # will get you out of pry shell.

从这里你知道你能够再次加载正确版本的Gtk,它必须是其他试图加载错误/另一个版本的东西。

还要确保更新系统依赖项。

sudo apt-get update

答案 1 :(得分:0)

解决了我的问题。事实证明我显然安装了 来自synaptic的gir1.2-gtk-4.0以及其他一些软件 我首先建立了我的系统。我不认为它是默认安装的。

我卸载了该文件,我的图形程序运行正常。 这个文件不在我的桌面计算机上,我没有遇到任何问题。

对我的帖子的回复是明智的,并且很感激。