运行新安装的`meld`的Python语法错误

时间:2016-05-10 00:02:45

标签: centos yum python

我正在安装meld as described here

sudo yum install intltool itstool gir1.2-gtksource-3.0 libxml2-utils

但是,当我尝试运行meld时,会出现此错误:

File "/usr/bin/meld", line 47
  print _("Meld requires %s or higher.") % modver
        ^

确实/usr/bin/meld有这段代码:

def missing_reqs(mod, ver):
    modver = mod + " " + ".".join(map(str, ver))
    print _("Meld requires %s or higher.") % modver
    sys.exit(1)

我在CentOS 6.7,Python版本3.3.5。

你能告诉我这里做错了吗?

编辑:

这是命令行,逐字:

$ meld
  File "/usr/bin/meld", line 47
    print _("Meld requires %s or higher.") % modver
          ^
SyntaxError: invalid syntax

以下是meld脚本的一部分:

import sys
if "--pychecker" in sys.argv:
    sys.argv.remove("--pychecker")
    import os
    os.environ['PYCHECKER'] = "--no-argsused --no-classattr --stdlib"
        #'--blacklist=gettext,locale,pygtk,gtk,gtk.keysyms,popen2,random,difflib,filecmp,tempfile'
    import pychecker.checker
#
# i18n support
#
sys.path[0:0] = [ "/usr/share/meld"
]
import paths
import gettext
_ = gettext.gettext

gettext.bindtextdomain("meld", paths.locale_dir())
gettext.textdomain("meld")

# Check requirements: Python 2.4, pygtk 2.8
pyver = (2,4)
pygtkver = (2,8,0)

def missing_reqs(mod, ver):
    modver = mod + " " + ".".join(map(str, ver))
    print _("Meld requires %s or higher.") % modver
    sys.exit(1)

if sys.version_info[:2] < pyver:
    missing_reqs("Python", pyver)

1 个答案:

答案 0 :(得分:1)

printpython2中的声明,就像您的脚本有:

print _("Meld requires %s or higher.") % modver

但您正在使用python3来解释脚本,该print没有print()语句,而是具有print功能。

您可以尝试将所有print()替换为python2,希望没有其他任何内容破坏,这无论如何都不是一个好的解决方案。

最好只安装sudo yum install python2

python2

并使用authentication作为翻译。