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 に答える