mercurial hgweb.cgi和python匹配版本是什么

3 投票
1 回答
2005 浏览
提问于 2025-04-16 23:25

我使用的Mercurial版本是1.9.1

C:\Inetpub\hgweb>hg version
Mercurial Distributed SCM (version 1.9.1)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2011 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.

我正在尝试运行位于Mercurial中的文件“hgweb.cgi”

我试过用Python 2.5、2.7和3.2,但仍然遇到魔法数字错误。

C:\Inetpub\hgweb>c:\Python25\python.exe hgweb.cgi
Traceback (most recent call last):
  File "hgweb.cgi", line 15, in <module>
    from mercurial import demandimport; demandimport.enable()
ImportError: Bad magic number in C:\Inetpub\hgweb\mercurial\__init__.pyc

C:\Inetpub\hgweb>c:\Python27\python.exe hgweb.cgi
Traceback (most recent call last):
  File "hgweb.cgi", line 15, in <module>
    from mercurial import demandimport; demandimport.enable()
ImportError: Bad magic number in C:\Inetpub\hgweb\mercurial\__init__.pyc

C:\Inetpub\hgweb>c:\Python32\python.exe hgweb.cgi
Traceback (most recent call last):
  File "hgweb.cgi", line 15, in <module>
    from mercurial import demandimport; demandimport.enable()
ImportError: Bad magic number in C:\Inetpub\hgweb\mercurial\__init__.pyc

我应该用哪个版本的Python呢?

编辑 #2

我重新复制了Mercurial中与hgweb.cgi同目录下的Library.zip内容,但出现的异常是“没有名为mercurial的模块”。不过那里有一个名为'mercurial'的文件夹,里面有pyo文件。(我尝试了其他Python版本2.7和3.2,错误依然相同)

详细信息:

<type 'exceptions.ImportError'> Python 2.5.4: C:\Python25\python.exe
Thu Aug 11 23:24:26 2011
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 C:\Inetpub\hgweb\hgweb.cgi in ()
   13 import cgitb; cgitb.enable()
   14 
   15 from mercurial import demandimport; demandimport.enable()
   16 from mercurial.hgweb import hgweb, wsgicgi
   17 application = hgweb(config)
mercurial undefined, demandimport undefined
<type 'exceptions.ImportError'>: No module named mercurial 
      args = ('No module named mercurial',) 
      message = 'No module named mercurial'

编辑 3

我安装了Python 2.6

新的错误是:

Traceback (most recent call last):
  File "C:\Inetpub\hgweb\hgweb.cgi ", line 17, in <module>
    application = hgweb(config)
  File "mercurial\hgweb\__init__.pyc", line 26, in hgweb
  File "mercurial\hgweb\hgwebdir_mod.pyc", line 62, in __init__
    ||ƒSt|iƒ}|}xæ|oŞ|i|ƒ}   |   o™||id
  File "mercurial\hgweb\hgwebdir_mod.pyc", line 71, in refresh
    |||ƒS|it|ƒ|dd|ƒSWn<tj
  File "mercurial\ui.pyc", line 43, in __init__
    |iƒ|djotiidƒ}n|id|ƒdS(NtsectionstremapsIgnored: %s
  File "mercurial\demandimport.pyc", line 75, in __getattribute__
  File "mercurial\demandimport.pyc", line 47, in _load
    _demandimportQs:"
  File "mercurial\scmutil.pyc", line 164, in <module>

  File "mercurial\scmutil.pyc", line 180, in opener
    (R÷tctx(smercurial\scmutil.pyctbadfn;s(R-(RRŸRØtbad(RRştoptsRRßR((R÷Rsmercurial\scmutil.pycRŸ3s
  File "mercurial\demandimport.pyc", line 75, in __getattribute__
  File "mercurial\demandimport.pyc", line 47, in _load
    _demandimportQs:"
  File "mercurial\util.pyc", line 503, in <module>
  File "mercurial\demandimport.pyc", line 85, in _demandimport
  File "mercurial\windows.pyc", line 21, in <module>
    cCscy|iiƒSWnKtj
  File "mercurial\demandimport.pyc", line 75, in __getattribute__
  File "mercurial\demandimport.pyc", line 47, in _load
    _demandimportQs:"
  File "mercurial\osutil.pyc", line 12, in <module>
  File "mercurial\osutil.pyc", line 10, in __load
ImportError: DLL load failed: The specified module could not be found.

1 个回答

3

你需要在与Mercurial构建时使用的Python版本下运行这个程序。可惜的是,常见问题解答里没有提到具体是哪个版本,而我现在的系统无法打开.msi文件,所以你需要检查一下TortoiseHG安装时有没有“pythonXX.dll”这样的库文件,然后用那个小版本的Python来运行。

撰写回答