HG-Git: AttributeError: 'bytes' object has no attribute 'encode'
HG-Git: AttributeError: 'bytes' object has no attribute 'encode'
我正在尝试使用 mercurial 和 hg-git 克隆一个 git 存储库,但不断出现 AttributeError。当我 运行 hg clone git://github.com/michaelfm1211/simpleserve
时,我得到的输出是这样的:
destination directory: simpleserve
** unknown exception encountered, please report by visiting
** https://mercurial-scm.org/wiki/BugTracker
** Python 3.8.3 (default, May 31 2020, 07:24:01) [Clang 11.0.3 (clang-1103.0.32.62)]
** Mercurial Distributed SCM (version 5.4.1)
** Extensions loaded: hggit
Traceback (most recent call last):
File "/Users/michaelfm1211/brew/bin/hg", line 43, in <module>
dispatch.run()
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 112, in run
status = dispatch(req)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 298, in dispatch
ret = _runcatch(req) or 0
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 472, in _runcatch
return _callcatch(ui, _runcatchfunc)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 481, in _callcatch
return scmutil.callcatch(ui, func)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/scmutil.py", line 152, in callcatch
return func()
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 462, in _runcatchfunc
return _dispatch(req)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 1225, in _dispatch
return runcommand(
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 910, in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 1237, in _runcommand
return cmdfunc()
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 1223, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/util.py", line 1864, in check
return func(*args, **kwargs)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/commands.py", line 1903, in clone
r = hg.clone(
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/hg.py", line 900, in clone
exchange.pull(
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/hg_git-0.9.0a1-py3.8.egg/hggit/util.py", line 64, in inner
return f(*args, **kwargs)
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/hg_git-0.9.0a1-py3.8.egg/hggit/__init__.py", line 366, in exchangepull
pullop.cgresult = repo.githandler.fetch(remote.path, heads)
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/hg_git-0.9.0a1-py3.8.egg/hggit/git_handler.py", line 283, in fetch
result = self.fetch_pack(remote, heads)
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/hg_git-0.9.0a1-py3.8.egg/hggit/git_handler.py", line 1223, in fetch_pack
ret = localclient.fetch_pack(path, determine_wants, graphwalker,
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/dulwich/client.py", line 876, in fetch_pack
proto, can_read, stderr = self._connect(b'upload-pack', path)
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/dulwich/client.py", line 1015, in _connect
b'git-' + cmd, path, b'host=' + self._host.encode('ascii'))
AttributeError: 'bytes' object has no attribute 'encode'
我不知道为什么会这样。我用 brew install hg
安装了 Mercurial,用 ~/brew/opt/python@3.8/bin/easy_install-3.8 hg-git
安装了 hg-git,因为我已经配置 Homebrew 安装到 ~/brew 而不是 /usr/local.
AttributeError: 'bytes' object has no attribute 'encode'
首先检查您用于 Mercurial 的 python 版本。
~/brew/opt/python@3.8
表示可能 Python 3.
然而:This hg-git
thread提到:
hg-git
does not work yet on Python3, but support may be coming soon.
hg-git
can’t run that far on Python 3 and
I suspect that you’re actually running Mercurial on Python 2.
我正在尝试使用 mercurial 和 hg-git 克隆一个 git 存储库,但不断出现 AttributeError。当我 运行 hg clone git://github.com/michaelfm1211/simpleserve
时,我得到的输出是这样的:
destination directory: simpleserve
** unknown exception encountered, please report by visiting
** https://mercurial-scm.org/wiki/BugTracker
** Python 3.8.3 (default, May 31 2020, 07:24:01) [Clang 11.0.3 (clang-1103.0.32.62)]
** Mercurial Distributed SCM (version 5.4.1)
** Extensions loaded: hggit
Traceback (most recent call last):
File "/Users/michaelfm1211/brew/bin/hg", line 43, in <module>
dispatch.run()
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 112, in run
status = dispatch(req)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 298, in dispatch
ret = _runcatch(req) or 0
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 472, in _runcatch
return _callcatch(ui, _runcatchfunc)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 481, in _callcatch
return scmutil.callcatch(ui, func)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/scmutil.py", line 152, in callcatch
return func()
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 462, in _runcatchfunc
return _dispatch(req)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 1225, in _dispatch
return runcommand(
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 910, in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 1237, in _runcommand
return cmdfunc()
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/dispatch.py", line 1223, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/util.py", line 1864, in check
return func(*args, **kwargs)
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/commands.py", line 1903, in clone
r = hg.clone(
File "/Users/michaelfm1211/brew/Cellar/mercurial/5.4.1/lib/python3.8/site-packages/mercurial/hg.py", line 900, in clone
exchange.pull(
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/hg_git-0.9.0a1-py3.8.egg/hggit/util.py", line 64, in inner
return f(*args, **kwargs)
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/hg_git-0.9.0a1-py3.8.egg/hggit/__init__.py", line 366, in exchangepull
pullop.cgresult = repo.githandler.fetch(remote.path, heads)
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/hg_git-0.9.0a1-py3.8.egg/hggit/git_handler.py", line 283, in fetch
result = self.fetch_pack(remote, heads)
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/hg_git-0.9.0a1-py3.8.egg/hggit/git_handler.py", line 1223, in fetch_pack
ret = localclient.fetch_pack(path, determine_wants, graphwalker,
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/dulwich/client.py", line 876, in fetch_pack
proto, can_read, stderr = self._connect(b'upload-pack', path)
File "/Users/michaelfm1211/brew/lib/python3.8/site-packages/dulwich/client.py", line 1015, in _connect
b'git-' + cmd, path, b'host=' + self._host.encode('ascii'))
AttributeError: 'bytes' object has no attribute 'encode'
我不知道为什么会这样。我用 brew install hg
安装了 Mercurial,用 ~/brew/opt/python@3.8/bin/easy_install-3.8 hg-git
安装了 hg-git,因为我已经配置 Homebrew 安装到 ~/brew 而不是 /usr/local.
AttributeError: 'bytes' object has no attribute 'encode'
首先检查您用于 Mercurial 的 python 版本。
~/brew/opt/python@3.8
表示可能 Python 3.
然而:This hg-git
thread提到:
hg-git
does not work yet on Python3, but support may be coming soon.
hg-git
can’t run that far on Python 3 and I suspect that you’re actually running Mercurial on Python 2.