简单的Mercurial扩展无法imp

2024-09-30 18:23:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图遵循writing Mercurial extensions的示例代码。这是一个最小的示例,从示例代码中逐字复制:

from mercurial import cmdutil
from mercurial.i18n import _

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

我将此文件保存到一个文件中,并在.hgrc文件中安装扩展名,如下所示:

^{pr2}$

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

*** failed to import extension myext from C:\foo\myext.py: 'module' object has no attribute 'command'

这是否可能是由错误的环境引起的,例如缺少环境变量?在

我在Windows10上使用Mercurial 4.7,由TortoiseHg安装程序(TortoiseHg-4.7.0-x64)安装。Mercurial使用Python2.7.13,也由TortoiseHg安装程序安装。在


Tags: 文件代码fromimport示例错误extensionsmercurial
1条回答
网友
1楼 · 发布于 2024-09-30 18:23:26

看起来文档需要更新。command是{a1},尽管当时还保留了一个别名。这是marked as deprecated in November, 2017和{a3}。在

Mercurial 4.7 release in August, 2018included the change that removed ^{}

cmdutil: drop deprecated precursor of registrar.command (API)

这对我有用:

from mercurial import registrar
from mercurial.i18n import _

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

相关问题 更多 >