RabbitVCS(0.14.2)不显示右键设置(settings)菜单,AttributeError: 'gtk.VBox' object has no attribute 'set_visible

RabbitVCS是Linux的svn客户端,对于在windows下用惯了TortoiseSVN的人来说,在linux下使用纯命令行的svn命令实在是太折磨人了,RabbitVCS就是一个类似于TortoiseSVN的linux平台工具。
我的linux平台是CentOS6.5,安装RabbitVCS已经好久了,是用yum install安装的0.14.2版本。
当时安装一切正常,但是突然有一天我发现右健菜单中的设置(settings)界面打不开了,当时没有影响svn的提交和更新功能也没理会,这两天必须要使用这个设置界面,却用不成,就不得不想办法解决了。
想升级到最新版本,yum 却没提供更新的版本,必须得自己去RabbitVCS官网下载源码编译,好麻烦。还是决定从现有的版本着手,尝试能不能解决。
这个帖子给了我提示《centos 6 install rabbitvcs》,
我尝试在命令行执行settings菜单显示

rabbitvcs settings

报错如下

Traceback (most recent call last):
File “settings.py”, line 352, in
window = Settings(options.base_dir)
File “settings.py”, line 126, in init
self.get_widget(“pages”).get_nth_page(5).set_visible(show_git)
AttributeError: ‘gtk.VBox’ object has no attribute ‘set_visible’

哈,总算知道错误信息了,这个'gtk.VBox' object has no attribute 'set_visible'是什么鬼?
我对pythong不熟悉,才入门,只能大概知道就是没有set_visible这个属性。。。

在google上一通乱找,找到这个贴子《[pygtk] Getting widget visibility》又给了我提示,可能是python依赖的pygtk库升级导致的兼容性问题,貌似set_visiable方法被废弃,改为直接对visiable变量赋值了。
于是打开/usr/lib/python2.6/site-packages/rabbitvcs/ui/settings.py找到126行set_visible所在的位置,代码片段如下:

        if base_dir:
            vcs = rabbitvcs.vcs.VCS()
            git_config_files = []
            if vcs.is_in_a_or_a_working_copy(base_dir) and vcs.guess(base_dir)["vcs"] == rabbitvcs.vcs.VCS_GIT:
                git = vcs.git(base_dir)
                git_config_files = git.get_config_files(base_dir)

                self.file_editor = rabbitvcs.ui.widget.MultiFileTextEditor(
                    self.get_widget("git_config_container"),
                    _("Config file:"),
                    git_config_files,
                    git_config_files,
                    show_add_line=False
                )
                show_git = True

#出错代码位置--本文作者注释 self.get_widget("pages").get_nth_page(5).set_visible(show_git)

        self._populate_checker_tab()

先把settings.py备份,然后修改代码,
self.get_widget("pages").get_nth_page(5).set_visible(show_git)改为self.get_widget("pages").get_nth_page(5).visible=show_git
然后执行

rabbitvcs settings

哈,报错消失,settings菜单正常显示啦!

再执行nautilus -q更新nautilus

点右键\RabbitVCS SVN\设置,界面正常打开:

RabbitVCS(0.14.2)不显示右键设置(settings)菜单,AttributeError: 'gtk.VBox' object has no attribute 'set_visible_第1张图片

你可能感兴趣的:(system)