8

これらは私が取ったステップです:

  • Apache 2.2.x をインストールする
  • TortoiseHg 0.7 をインストール
  • hgwebdir.cgi、hgweb.config を cgi-bin にコピーします
  • 必要に応じて hgweb.config を編集します
  • $blah\TortoiseHg\library.zip を解凍して $blah\TortoiseHg\library を解凍します
  • hgwebdir.cgi の先頭に sys.path.append("$blah\TortoiseHg\library")
  • $blah\TortoiseHg\templates を $blah\TortoiseHg\library\templates に移動

(編集:これらすべてのステップがここに配置されていることを追加するのを忘れていました。)

http://localhost/cgi-bin/hgwebdir.cgi/を実行すると、リポジトリが表示されます。そのリポジトリを参照しようとすると、「DLL の読み込みに失敗しました: 指定されたモジュールが見つかりませんでした。」と表示されます。ウォークバックの最後の行には、「c:\program files\apache group\apache\cgi-bin\mercurial\osutil.pyc in __load()」と書かれています。

pywintypes25.dll に問題がある人について読んだことがあります。これは "c:\program files\tortoisehg" にあり、既に私の PATH に含まれています。

どの DLL が見つかりませんでしたか?

4

5 に答える 5

7

あなたはmercurialのcライブラリを見逃しました

ここから抜け出すには3つの方法があります

  1. 最近のmercurialバージョンには、mercurial/pureで見つけることができる純粋なpython実装が付属しています
  2. 自分でコンパイルします(手順については正確にはわかりませんが、これはどのUNIXでも機能します)
  3. Web サイトから win32 インストーラーを取得
    します。それらがどのようにビルドされるかをまだ見ていないことに注意してください
    (py2exe ベースのインストールではなく、distutils ベースのインストールが必要です)。
于 2009-03-14T20:29:32.910 に答える
3

まず第一に、これにはTortoiseHgを使用しないでください。代わりにMercurialインストーラーを使用してください。

(TortoiseHgは、Pythonのインストールから可能な限り独立しようとします。このPythonの初心者には不明確な理由で、動作しません。py2exeについての何か。)

それ以外の場合は、HgWebDirStepByStepの手順に従ってください。pywintypesをインストールする必要がありましたが、YMMVです。最後に、そのページに記載されているunzipユーティリティは、ファイルのパーミッションで奇妙なことをする可能性があります。テンプレートディレクトリとそのファイル/サブディレクトリに読み取りパーミッションを追加する必要がありました。

余談ですが、スタイルを設定する方法がわからない場合は、これをhgweb.configに追加してください。

[web]
style = foo
于 2009-03-16T14:45:34.157 に答える
2

私のセットアップには、apache 2.2.17、mod_wsgi 3.3、python 2.7.2、trac 0.12.2、mercurial 1.8.4 が含まれます。2 つの問題が浮上しました。

  1. mercurial demandimport 初期化順序
  2. Mercurial がサイト パッケージの DLL を読み込めません。

次のように問題を解決しました。

  1. hgwebdir.wsgi を変更して demandimport を無効にします。

from mercurial import demandimport; demandimport.disable()

  1. 純粋な (.py のみ、コンパイル済みの .pyd なし) mercurial パッケージを作成してインストールします。https://www.mercurial-scm.org/wiki/WindowsInstallも参照してください。

E:\Dist\mercurial-1.8.4>setup.py --pure build
E:\Dist\mercurial-1.8.4>setup.py --pure install

コンパイルされたバージョン (Microsoft Visual Studio 2008 を使用) は、DLL のロードに失敗します。

[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24] mod_wsgi (pid=6092): Exception occurred processing WSGI script 'D:/Home/web/apache/cgi-bin/hgwebdir.wsgi'.
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24] Traceback (most recent call last):
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]   File "D:/Home/web/apache/cgi-bin/hgwebdir.wsgi", line 9, in <module>
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]     from mercurial.hgweb.hgwebdir_mod import hgwebdir
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]   File "C:\\Apps\\Python27\\lib\\site-packages\\mercurial\\hgweb\\__init__.py", line 10, in <module>
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]     import hgweb_mod, hgwebdir_mod
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]   File "C:\\Apps\\Python27\\lib\\site-packages\\mercurial\\hgweb\\hgweb_mod.py", line 10, in <module>
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]     from mercurial import ui, hg, hook, error, encoding, templater
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]   File "C:\\Apps\\Python27\\lib\\site-packages\\mercurial\\ui.py", line 10, in <module>
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]     import config, util, error
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]   File "C:\\Apps\\Python27\\lib\\site-packages\\mercurial\\config.py", line 9, in <module>
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]     import error, util
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]   File "C:\\Apps\\Python27\\lib\\site-packages\\mercurial\\util.py", line 17, in <module>
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24]     import error, osutil, encoding
[Thu Jun 16 21:46:28 2011] [error] [client 192.168.178.24] ImportError: DLL load failed: The specified module could not be found.
于 2011-06-16T20:11:51.957 に答える
1

この質問は既に回答されていることは知っていますが、少し異なる問題を経験し、回避策を見つけました -

Python 構成 (2.5.4) に明らかな何かが欠けていると確信していますが、.pyd と .dll に問題があります。(Python サブバージョン ライブラリでも同じ問題がありました。) Mercurial\library.zip に osutil.pyd が表示されますが、ロードに失敗します。したがって、library.zip を解凍し、*.pyd を *.dll にコピーしました。

REM Ugly DOS... Recursively renames all .pyd files to .dll
for /f "tokens=*" %%a in ('dir /s /b *.pyd') do copy "%%a" "%%~da%%~pa%%~na.dll"

解凍されたライブラリ ディレクトリが PYTHONPATH にあることを確認しますが、この後、正常に実行できます: from mercurial import osutil. また、Templates ディレクトリを新しく解凍したライブラリ ディレクトリにコピーまたは移動することも忘れないでください。

残りはHgWebDirStepByStepのセクション 5 の手順に従います。ただし、セクション 5.3 の「落とし穴」は経験しませんでした。

于 2009-10-20T05:43:39.653 に答える
0

Windows で TortoiseHg と Apache を使用するための段階的なチュートリアルを探している人のために、ここに書きました: http://makinggames.ca/dev/version-control-mercurial-apache-tortoisehg/

于 2011-10-12T05:18:31.463 に答える