python - 简单的 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 使用 Python 2.7.13,也由 TortoiseHg 安装程序安装。
解决方案
看起来文档需要更新。command
于2016 年 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)
推荐阅读
- gradle - Gradle IDE 支持
- ios - Swift - 使用地理编码查找当前位置附近的位置
- azure - 如何在 Azure 通信服务中查看或下载通话记录?
- javascript - Node js 上的 HTTP 服务器和 Console.log
- node.js - 使用node js在mongodb中同时存储多个图像
- azure - 子网 VPN 网关内的 Azure 负载均衡器
- javascript - 无法解决猫鼬上的“模型一旦编译就无法覆盖”错误
- jenkins - 基于 Jenkins 组的身份验证 - SAML Google
- reactjs - 将 Auth0 信息发布到我的 Postgresql 数据库时出现问题
- localhost - 如何将本地存储与 react-static 一起使用