如何修复“AttributeError:'module'对象没有属性'set_binary'”?

时间:2014-01-09 11:03:07

标签: mercurial

我成功编译了mercurial如下: ...

copying build/scripts-2.7/hg -> /usr/local/bin
changing mode of /usr/local/bin/hg to 755
running install_egg_info
Writing /usr/local/lib/python2.7/site-packages/mercurial-2.8.1-py2.7.egg-info
as3:~/mercurial-2.8.1# cd ~
as3:~# hg clone http://hg.cat-v.org/werc/
Traceback (most recent call last):
File "/usr/bin/hg", line 25, in <module>
mercurial.util.set_binary(fp)
        File "/usr/local/lib/python2.7/site-packages/mercurial/demandimport.py", line 103, in __getattribute__
return getattr(self._module, attr)
AttributeError: 'module' object has no attribute 'set_binary'
as3:~#

如何解决?tks。 我的python版本:2.7.6

1 个答案:

答案 0 :(得分:4)

请注意,您已将源代码中的mercurial安装到/usr/local/bin,但错误消息提及/usr/bin/hg。这意味着您在/usr/bin/hg下安装了不同版本的mercurial主脚本,然后尝试使用/usr/local中的新mercurial库。发生错误,因为2是不兼容的。

要解决此问题,请从/usr/bin删除较旧的mercurial。您可能还需要在shell中调用rehash,以便根据shell调用它。

如果mercurial不起作用,则意味着/usr/local/bin不在您的PATH中。如果是这种情况,你需要修复PATH,或者只需要符号链接新的hg,如下所示:

# ln -s /usr/local/bin/hg /usr/bin

但这需要root访问权限,例如,通过sudo调用它。