mercurial hgweb.cgi和python匹配版本是什么
我使用的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来运行。