python - 安装 Mac 版 TortoiseHg : No module named mercurial

标签 python mercurial python-2.7 tortoisehg

我正在尝试按照以下说明安装 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.

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

谢谢您的回答

最佳答案

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

从我收到的错误消息来看,脚本找不到名为 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 文件夹的位置相对应。

关于python - 安装 Mac 版 TortoiseHg : No module named mercurial,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14183180/

相关文章:

python - 如何在 python 中根据索引和长度做无限字符串?

使用 vars 或 __dict__ 的 Python 固定宽度字符串格式

python - django stripe 设置安装报错

java - Git 或 Mercurial 在 Java 项目中的使用

bash:获取传递给脚本的文字参数并将它们作为命令执行

python - 合并具有数百万行的磁盘表时出现问题

python - Python Click 提示是否有任何预填充选项?

python - 评估特定子数组的数组

python - 将整数或整数列表转换为集合

Mercurial:使一个分支与另一个分支相同