2

我正在尝试按照以下说明为 Mac 安装 TortoiseHg:https ://bitbucket.org/tortoisehg/thg/wiki/developers/MacOSX#!alternative-install-via-macports

我正在尝试按照有关“替代方案:通过 Homebrew 安装”的说明进行操作,但遇到了问题。

当我./thg log按照说明执行时,TortoiseHg 正在启动。但是,当我尝试从 python 脚本创建应用程序时,会创建应用程序,但是当我启动它时它会崩溃。

这是输出:

Traceback (most recent call last):
  File "/Users/fabienhenon/Documents/thg-mac-app/dist/TortoiseHg.app/Contents/Resources/__boot__.py", line 316, in <module>
    _run()
  File "/Users/fabienhenon/Documents/thg-mac-app/dist/TortoiseHg.app/Contents/Resources/__boot__.py", line 311, in _run
    exec(compile(source, path, 'exec'), globals(), globals())
  File "/Users/fabienhenon/Documents/thg-mac-app/dist/TortoiseHg.app/Contents/Resources/main.py", line 28, in <module>
    imp.load_source("thg", SCRIPT_DIR + "/bin/thg")
  File "/Users/fabienhenon/Documents/thg-mac-app/dist/TortoiseHg.app/Contents/Resources/bin/thg", line 56, in <module>
    from mercurial import demandimport
ImportError: No module named mercurial
2013-01-06 12:25:17.436 TortoiseHg[406:707] TortoiseHg Error
logout

[Opération terminée]

当我输入:hg --version我有以下输出:

Mercurial Distributed SCM (version 2.4.2+20130102)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2012 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

有人可以帮我解决这个问题吗?

谢谢您的回答

4

1 回答 1

4

我找到了解决此问题的解决方案。

从我收到的错误消息中,脚本找不到名为 mercurial 的模块。我是 Python 新手,所以我必须进行一些研究以了解模块导入的工作原理,并且我发现了一些关于使用'sys'模块动态导入模块的信息。

我的解决方案是编辑 tortoisehg 源代码(错误来自的文件)以动态添加我的 mercurial 模块的路径,'sys.path'以便程序知道在哪里可以找到 mercurial 模块。

这是代码(在“thg”python文件中,第56行(如错误所述)):

import sys
sys.path.append("/Library/Python/2.7/site-packages")

您必须在此行之前添加此代码:

from mercurial import demandimport

并且路径必须与您的 mercurial 文件夹的位置相对应。

于 2013-01-11T17:06:57.193 回答