Mercurial CGI(hgweb.cgi)失败

zik*_*agx 10 python mercurial windows-server-2008

我在运行在vm上的Win 2k8 R2上安装了Mercurial 1.8.1,Python 2.6.6.我尝试从msi,源码和使用tortisehg安装.命令行Hg工作正常,但运行hgweb.cgi时出现同样的错误:

Traceback (most recent call last):
  File ".\hgweb.cgi", line 17, in 
    application = hgweb(config)
  File "mercurial\hgweb\__init__.pyc", line 26, in hgweb

  File "mercurial\hgweb\hgwebdir_mod.pyc", line 61, in __init__

  File "mercurial\hgweb\hgwebdir_mod.pyc", line 70, in refresh

  File "mercurial\ui.pyc", line 35, in __init__

  File "mercurial\demandimport.pyc", line 75, in __getattribute__

  File "mercurial\demandimport.pyc", line 47, in _load

  File "mercurial\util.pyc", line 576, in 

  File "mercurial\demandimport.pyc", line 85, in _demandimport

  File "mercurial\windows.pyc", line 21, in 

  File "mercurial\demandimport.pyc", line 75, in __getattribute__

  File "mercurial\demandimport.pyc", line 47, in _load

  File "mercurial\osutil.pyc", line 12, in 

  File "mercurial\osutil.pyc", line 10, in __load

ImportError: DLL load failed: The specified module could not be found.

我在SO和其他地方找到的其他答案指出我尝试从源代码安装,将纯osutil放入安装或安装旧版本.我试过了所有这些.

这特别令人沮丧,因为我有其他类似的非虚拟机运行正常但无法找到断开连接.

想法?

Ale*_*sov 18

我使用以下系统配置时遇到了同样的错误

  • Python-2.6.6作为msi安装
  • mercurial-1.8.2-x86作为msi安装
  • IIS7

我简单地解决了这个问题:

  1. Python早期安装
  2. 卸载Mercurial msi包
  3. mercurial网站下载并安装"Mercurial-1.8.2(32位py2.6)"安装程序,标记为" 建议用于hgweb设置 ".
  4. 将C:\ Python26\Lib\site-packages\mercurial \的内容复制到IIS7网站设置中使用的目录.

直到现在一切正常.希望这会有所帮助.


Bin*_*ile 1

每当我收到描述性错误消息时,它们告诉我系统级别发生了一些事情,但没有告诉我是什么,我就会使用Sysinternals 的 Procmon来告诉我注册表和文件系统发生了什么情况。它很冗长,并且让过滤器仅显示感兴趣的过程需要一些学习,但您可以将结果导出到 Excel 并浏览它们以查找可疑的结果。当然,要特别注意失败。

尝试一下,看看正在搜索什么 DLL。