我有一个名为precommit_bad_branch
的钩子函数,它导入hook_utils
。通过提交调用precommit_bad_branch
时,我收到以下错误消息:
error: precommit.branch_check hook raised an exception: No module named hook_utils
abort: No module named hook_utils!
我似乎无法从hook_utils
拨打precommit_bad_branch
。如果我明确地调用它而不涉及Mercurial,代码工作正常。
我的钩子可以从另一个文件中调用代码吗?
我的hgrc钩子部分看起来像这样:
[hooks]
precommit.branch_check = python:C:\workspaces\hg_hooks\next_hooks.py:precommit_bad_branch
precommit.debug_code_check = python:C:\workspaces\hg_hooks\common_hooks.py:precommit_contains_debug_code
preupdate.merge_check = python:C:\workspaces\hg_hooks\next_hooks.py:preupdate_bad_merge
答案 0 :(得分:2)
将C:\workspaces\hg_hooks
目录放在PYTHONPATH
中,您就可以写
[hooks]
precommit.branch_check = python:next_hooks.precommit_bad_branch
在您的配置文件中,您也可以
import hook_utils
在任何Python文件中,包括next_hooks.py
文件。
或者,您可以从sys.path
修改next_hooks.py
,也许可以使用以下代码修改import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
import hook_utils
:
{{1}}