这是我采取的步骤:
(编辑:我忘了添加所有这些步骤here。
当我运行http://localhost/cgi-bin/hgwebdir.cgi/时,我可以看到我的存储库。如果我尝试浏览该存储库,我会被告知“DLL加载失败:无法找到指定的模块。”。回溯的最后一行在__load()中显示“c:\ program files \ apache group \ apache \ cgi-bin \ mercurial \ osutil.pyc”。
我读过有关pywintypes25.dll问题的人;它位于“c:\ program files \ tortoisehg”中,已经在我的PATH中。
找不到什么DLL?
答案 0 :(得分:7)
有三种方法可以摆脱这个
答案 1 :(得分:4)
首先:不要使用TortoiseHg。请改用Mercurial安装程序。
(TortoiseHg尝试尽可能独立于你的Python安装,并且由于这个Python新手不清楚的原因,事情不起作用。关于py2exe的事情。)
否则,只需按照HgWebDirStepByStep中的步骤操作即可。我确实必须安装pywintypes,但是YMMV。最后,该页面上提到的解压缩实用程序可能会对文件权限做一些奇怪的事情:我必须向Templates目录及其文件/子目录添加读取权限。
顺便说一句,如果您想知道如何设置样式,请将其添加到hgweb.config:
[web]
style = foo
答案 2 :(得分:2)
我的设置涉及apache 2.2.17,mod_wsgi 3.3,python 2.7.2,trac 0.12.2,mercurial 1.8.4。两个问题浮出水面:
我解决了以下问题:
from mercurial import demandimport; demandimport.disable()
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.
答案 3 :(得分:1)
我知道这个问题已经得到解答,但我遇到了一个稍微不同的问题并找到了解决方法 -
我确信我在Python配置中遗漏了一些明显的东西(2.5.4),但我遇到了.pyd与.dll的问题。 (我在Python subversion库中遇到了同样的问题。)我在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中,但在此之后我成功执行:来自mercurial import osutil。还要记得将Templates目录复制或移动到新解压缩的库目录。
其余部分请按照HgWebDirStepByStep第5部分中的步骤操作。虽然我没有在第5.3节中体验过“陷阱”。
答案 4 :(得分:0)
对于那些正在寻找分步教程以在Windows上使用TortoiseHg和Apache的人,我在这里写了一篇:http://makinggames.ca/dev/version-control-mercurial-apache-tortoisehg/