私たちは仕事で Mercurial を試運転しています。リポジトリと対話するたびにユーザー/パスを入力する必要がないように、mercurial_keyring 拡張機能をセットアップします。私達:
- インストール済みの Python 2.6.5 (システムに応じて 32 ビットまたは 64 ビット)
- インストールされた setuptools (easy_install.exe 用)
- easy_install キーリング
- easy_install mercurial_keyring
次に、セクションの %userprofile%/mercurial.ini に適切な変更を加えました[auth]
。同僚のコンピューター (32 ビット xp sp3) では正常に動作しますが、私のマシン (Windows 7 Ultimate x64) では動作しません。また、setuptools は Win 7 x64 のソースからビルドする必要がありました (python setup.py bdist_wininst
その後、setuptools-0.6c11.win-amd64.exe を実行します)。
Mercurial 1.5 バイナリ インストール (.msi) の hg.exe だけを使用して、hg.exe を実行すると次のエラーが発生します。
*** 拡張機能 mercurial_keyring のインポートに失敗しました: mercurial_keyring という名前のモジュールがありません
mercurial に検索させるのではなく、mercurial_keyring.py ファイルへのパスを指定するように mercurial.ini を変更しようとしました (PYTHONPATH にあるため)。
年:
[extensions]
mercurial_keyring =
新しい:
[extensions] mercurial_keyring =
c:/mercurial/extensions/mercurial_keyring.py
エラーは次のように変わります。
中止: モジュールのキーリングをインポートできませんでした!
そのため、mercurial_keyring 拡張機能へのパスを提供しても、依存するキーリング モジュールはまだ見つかりません。
さらに調査した結果、機能する拡張機能はないようです。それらはすべてエラーを生成します:
*** 拡張機能 [拡張機能名] のインポートに失敗しました: [モジュール名] という名前のモジュールがありません
hg.exe を実行すると、PYTHONPATH が認識されないようです。私が試してみました:
- Python 2.6.5 32 ビット
- Python 2.6.5 64 ビット
- MinGW を使用してソースから Mercurial 1.5 をビルドする
- MSVC9 を使用してソースから Mercurial 1.5 をビルドする
- 1.5 バイナリ ディストリビューション (.msi) からの hg.exe の使用
- ソースからビルドするときに c:\python26\scripts の hg.py を使用する
- %userprofile%/mercurial.ini のさまざまな設定
- setuptools (easy_install.exe) を使用してキーリングと mercurial_keyring をインストールする
- ソースからのキーリングと mercurial_keyring の構築 (python setup.py bdist_wininst)
何も機能しません。私が持っている最も近いものは、ソースからビルドするときに hg.py を使用することです。少なくともエラーは発生せず、資格情報を入力すると実際に %userprofile%/wincrypto_pass.cfg が作成されます。ただし、後続の要求では、資格情報が自動的に入力されません。それは私にそれらを再び促します。
興味深いことに、TortoiseHGはキーリングを使用しています。コマンドラインで動作させることができません。mercurial (hg.exe) が PYTHONPATH を認識できないために Win 7 x64 で何かが起こっているため、インストールされているモジュールを見つけることができません。
Win 7 x64 で機能する拡張機能を持っている人はいますか? 具体的には、mercurial (hg.py ではない) のバイナリ インストールでは?
更新 私は今のところ適切な回避策を見つけました。TortoiseHGはmercurial_keyring で動作するので、単に tortoiseHG フォルダーを含むように PATH 設定を変更しましたが、c:\mercurial は含みません。コマンド ラインで「hg」と入力すると、tortoiseHG フォルダー内の hg.exe が使用され、正常に動作します。同じように、これは Win 7 x64 での mercurial 拡張の問題です。回答歓迎。