59

Windowsでhg-gitMercurial拡張機能を使用しようとしています(具体的には、Windows 7 64ビット)。MercurialとGitをインストールしています。Python 2.5(32ビット)をインストールしています。

http://hg-git.github.com/の指示に従って、拡張機能をインストールしました。Visual Studio 2003なしではdulwichをコンパイルできなかったため、最初のeasy_installは失敗しました。

私はdulwichを手動でインストールしました:

  • git clone git://git.samba.org/jelmer/dulwich.git
  • cdダリジ
  • c:\ Python25 \ python setup.py --pure install

これで、easy_install hg-gitを実行すると、成功します(dulwichの依存関係が満たされているため)。

私のC:\ Users \ username \ Mercurial.iniには、次のものがあります。

[extensions]
hgext.bookmarks =
hggit =

コマンドプロンプトで「hg」と入力すると、「***拡張機能hggitのインポートに失敗しました:hggitという名前のモジュールがありません」と表示されます。

私のc:\ Python25フォルダーの下を見ると、hggitへの唯一の参照はですLib\site-packages\hg_git-0.2.1-py2.5.egg。これはどこかで抽出されるはずですか、それともそのまま動作する必要がありますか?

それが失敗したので、私はgit://github.com/schacon/hg-git.gitのクローンを作成し、Mercurial構成でパスを参照することを提案するhg-gitページからの「より複雑な」指示を試みました。リポジトリのクローンを作成し、拡張ファイルを次のように変更しました。

[extensions]
hgext.bookmarks =
hggit = c:\code\hg-git\hggit

hgを実行すると、次のように表示されます。***拡張機能hggitをc:\ code \ hg-git \ hggitからインポートできませんでした:dulwich.errorsという名前のモジュールがありません。

わかりました。hg-git\hggit\ git_handler.pyで呼び出すことができるので、hggitが検出されていることがわかります。

from dulwich.errors import HangupException

それは私にdulwichが正しくインストールされていないか、パスにないように思わせます。

アップデート:

Pythonコマンドラインから:

import dulwich

収量Import Error: No module named dulwich

ただし、C:\ Python25 \ Lib \ site-packagesの下に、データが入力されているように見えるdulwich-0.5.0-py2.5.eggフォルダーがあります。これは、上記の手順で作成されました。Pythonの「パス」の一部にするために必要な追加の手順はありますか?

Pythonコマンドラインから(回答の1つで提案されているように):

import pkg_resources
pkg_resources.require('dulwich')

収量[dulwich 0.5.0 (c:\python25\lib\site-packages\dulwich-0.5.0-py2.5.egg)]

それで、それは私に何を伝えますか?dulwichのインポートは失敗しますが、どうやらpkg_resourcesはそれを見つけることができます。その情報で何ができますか?

4

11 に答える 11

16

それは私にdulwichが正しくインストールされていないか、パスにないように思わせます。

あなたは絶対に正しいです。Windows用のMercurialバイナリディストリビューションは「凍結」されています。Pythonコードとインタプリタがバンドルされているため、システムPYTHONPATHにインストールされているパッケージから独立しています。Mercurial.iniでhggit拡張子へのパスを指定すると、hgは直接パスを使用してインポートしようとしますが、dulwichライブラリはhgによって明示的にインポートされず、そのライブラリにバンドルされていないため、インポートは失敗します。

DulwichとHgGitの両方をhg.exeと一緒にインストールされるlibrary.zipに追加することは可能ですが、私にとって最善の方法は、Mercurialを含むソースからすべてをインストールし、\ Python\Scriptsにインストールされた.batファイルを使用してコマンドを実行することです。この場合、次のことを行う必要があります。

  1. ソースからMercurialをインストールします。これは「純粋な」バージョンを構築します。これは、Windowsユーザーは通常、CスピードアップをコンパイルするためのVisualStudioまたは代替コンパイラを持っていないためです。
  2. Dulwichのインストール-GitとDulwichの両方に最新のトランクスナップショットを使用します。

    python setup.py --pure install

  3. 最新のHgGitスナップショットをインストールします

    python setup.py install

  4. Mercurial.iniを編集して有効にしますhggit =

  5. \ Python \ Scripts\hg.batを使用してMercurialを起動します
于 2010-04-28T22:25:07.707 に答える
12

http://candidcode.com/2010/01/12/a-guide-to-converting-from-mercurial-hg-to-git-on-a-windows-client/でより簡単な解決策を見つけました

そして、私は自分でさらに簡単な解決策を見つけました:

Windows で hg-git Mercurial 拡張機能を使用するには:

  1. 公式の Mercurial バイナリをインストールする
  2. dulwich ソースの dulwich フォルダーと hg-git ソースの hggit フォルダーを、Mercurial インストール フォルダーの library.zip のルートに配置します。
  3. 以下を %USERPROFILE%\Mercurial.ini に追加します。

[extensions]
hgext.bookmarks=
hggit=

SSH をサポートするには、PuTTY ファミリーの plink.exe が必要です。その後、以下を Mercurial.ini に追加する必要があります。

[ui]
username = John Doe <foo@example.com>
ssh=d:/home/lib/dll/plink.exe -i "d:/home2/ssh-private-key.ppk"

初めて SSH サーバーに接続するときは、putty.exe を起動し、それを使用して接続を試みる必要があります。サーバーキーのフィンガープリントがレジストリに追加されます。そうしないと、plink は指紋を受け入れるように求めますが、入力は受け入れません。

puttygen.exe を使用して秘密鍵を生成できます。パスフレーズのないキーを使用するか、Pageant.exe ssh 認証エージェントを使用します。

于 2011-08-09T15:28:17.823 に答える
8

TortoiseHg をインストールできる場合は、dulwich およびその他の要件が含まれています。

于 2010-04-02T03:57:15.657 に答える
4

次の構成を試してください(パスを変更してください)。これは私にとってはうまくいきます:

[extensions]
; hg-git extention
hgext.bookmarks =
hggit = C:\Python26\Lib\site-packages\hg_git-0.2.1-py2.6.egg\hggit

私の場合、 の値が空の場合hggit =、この場合と同じエラーが発生します。しかしimport dulwich、Pythonシェルでは問題なくできるので、easy-install.pth(Davidが指摘したように)含まれているかどうかを確認する必要がありますdulwich-0.5.0-py2.5.egg。の純粋なバージョンもインストールdulwichしました。

于 2010-03-23T22:37:50.837 に答える
0

あなたがimport dulwich仕事をするまで、仕事はしhggitません。のファイルにdulwicheggファイルがあることを確認してください。easy-install.pthsite-packages

さらにデバッグするにはpkg_resources、それについて質問してみてください。

import pkg_resources
pkg_resources.require("dulwich")
于 2010-03-12T11:48:40.497 に答える
0

のインポートに失敗した理由に関する techtonik の説明dulwich.errorsに基づいて、既に提案されているものよりも簡単に見える解決策を見つけました。

Mercurial のダウンロード ページには、

<x.y.z>Windows x86 上の Python 2.7 用のMercurial (ソース インストール)

Windows x64 上の Python 2.7 用のMercurial <x.y.z>(ソース インストール)

Mercurial を Python モジュールとして既存の Python 2.7 (x86 または x64) インストールにインストールする .EXE ファイルとして。

この Python インストールに hg-git と dulwich もインストールされている場合、インポート エラーは消えるはずです。

今何をすべきかわからない場合は、この段階的な説明が役立つことを願っています。

前提条件

手順

  1. 既存の Mercurial インストールをすべて削除する
  2. インストールされている Python 2.7 が 32 ビットか 64 ビットかに応じて、上記の EXE ファイルのいずれかをダウンロードしてインストールします (「Python 2.7 がレジストリに見つかりません」というエラーが発生した場合は、おそらく別のファイルが必要です)。

これhg clone <some git repo>でコンソールで動作するはずです。

于 2014-01-22T01:43:24.930 に答える
0

私もdulwich.errorsでこの問題に遭遇しました。すべてを最初からインストールする代わりに。デフォルトのサイト パッケージから mercurial サイト パッケージに dulwich をコピーしました。問題なく動作しました。

于 2010-11-22T05:12:16.780 に答える
-2

sudo apt-get install python-dev # くそ依存!

sudo easy_install ダルウィッチ

成功!

于 2013-08-14T19:06:34.667 に答える