wal*_*pus 9 python mercurial tortoisehg mercurial-extension
我正在尝试按照示例代码编写Mercurial扩展.这是一个最小的样本,从示例代码中逐字复制:
from mercurial import cmdutil
from mercurial.i18n import _
cmdtable = {}
command = cmdutil.command(cmdtable)
Run Code Online (Sandbox Code Playgroud)
我将其保存到文件并在我的.hgrc
文件中安装扩展名,如下所示:
[extensions]
myext=C:\foo\myext.py
Run Code Online (Sandbox Code Playgroud)
任何后续发出的命令,例如hg init
现在导致以下错误消息:
***无法从C:\ foo\myext.py导入扩展名myext:'module'对象没有属性'command'
这可能是由错误的环境引起的,例如缺少环境变量吗?
我在Windows 10上使用Mercurial 4.7,由TortoiseHg安装程序(tortoisehg-4.7.0-x64)安装.Mercurial使用Python 2.7.13,也是由TortoiseHg安装程序安装的.
Chr*_*ris 12
看起来文档需要更新.command
是从移动cmdutil
到registrar
在2016年1月,虽然一个别名是当时留在原地.这在2017年11月被标记为已弃用,并于2018年5月完全删除.
2018年8月发布 的Mercurial 4.7 包括删除的更改cmdutil.command
:
cmdutil:drop不推荐使用registrar.command(API)的前身
这对我有用:
from mercurial import registrar
from mercurial.i18n import _
cmdtable = {}
command = registrar.command(cmdtable)
Run Code Online (Sandbox Code Playgroud)