简单的Mercurial扩展名无法导入

瓦尔德鲁姆斯:

我正在尝试遵循示例代码来编写Mercurial扩展这是一个最小的示例,从示例代码中逐字复制:

from mercurial import cmdutil
from mercurial.i18n import _

cmdtable = {}
command = cmdutil.command(cmdtable)

我将其保存到文件,然后在.hgrc文件中安装扩展名,如下所示:

[extensions]
myext=C:\foo\myext.py

任何随后发出的命令(例如hg init现在)都会导致以下错误消息:

***无法从C:\ foo \ myext.py导入扩展名myext:“模块”对象没有属性“命令”

这可能是由于错误的环境(例如缺少环境变量)引起的吗?

我正在Windows 10上使用Mercurial 4.7,由TortoiseHg安装程序(tortoisehg-4.7.0-x64)安装。Mercurial使用同样由TortoiseHg安装程序安装的Python 2.7.13。

克里斯 :

看来文档需要更新。command2016年1月cmdutil移至registrar但当时已保留别名。该功能在2017年11月标记为已弃用,在2018年5月被完全删除

2018年8月发布 Mercurial 4.7 包含删除的更改cmdutil.command

cmdutil:删除不推荐使用的registrar.command(API)的前体

这对我有用:

from mercurial import registrar
from mercurial.i18n import _

cmdtable = {}
command = registrar.command(cmdtable)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章