gpt4 book ai didi

python - IIS 7.5 上的 Mercurial 和 hgweb - python 错误

转载 作者:太空狗 更新时间:2023-10-29 19:34:25 24 4
gpt4 key购买 nike

我正在尝试让 Mercurial 托管在 IIS 7.5 (Win 7 x64) 上,但一直遇到我似乎无法修复的错误。

我在这里遵循了 Jeremy Skinners 的教程:Mercurial on IIS7

我使用的是 hgweb 而不是 hgwebdir,因为我使用的是 Mercurial 1.7.2

我已经安装了 python 并且可以正常工作。我在 http://localhost/hg 为 Mercurial 设置了一个 IIS 应用程序-> 在目录 c:\inetpub\wwwroot\hg 中

我将模板目录放入 c:\inetpub\wwwroot\hg我将 library.zip 文件解压到 c:\inetpub\wwwroot\hg

当我访问该站点时,出现错误 -> File "C:\inetpub\wwwroot\hg\hgweb.cgi", line 15, in from mercurial import demandimport; demandimport.enable() ImportError: No module named mercurial ".

搜索此错误时,我找到了以下答案:https://stackoverflow.com/questions/2123798/

按照接受的答案,我将 hgweb.cgi 更改为如下所示:

#!c:/python/python26/python.exe
#
# An example hgweb CGI script, edit as necessary
# See also https://www.mercurial-scm.org/wiki/PublishingRepositories

# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/path/to/repo/or/config"

# Uncomment and adjust if Mercurial is not installed system-wide:
import sys; sys.path.insert(0, "c:\inetpub\wwwroot\hg")

# Uncomment to send python tracebacks to the browser if an error occurs:
#import cgitb; cgitb.enable()

from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb('c:\inetpub\wwwroot\hg\hgweb.config')
wsgicgi.launch(application)

这样做之后,我仍然得到同样的错误。我不知道还能做什么。任何帮助将不胜感激。

Edi 1:c:\inetpub\wwwroot\hg 的屏幕截图根据要求:My Hg directory

最佳答案

在过去一周左右的时间里,我一直在为同样的设置而苦苦挣扎。

在我看来,他们最近对 mercurial 在 IIS 中的工作方式进行了一些重大更改,因此上面指向 Jeremy Skinners 教程的链接对于 1.7.2 会有问题

这是一个 more recent link我发现我必须以不同的方式做几件事。

这些说明适用于 1.7.x,如果您使用的是 1.8.x,请务必阅读下面 Ethan 的评论!

我按照 the comments of /contrib/win32/hgwebdir_wsgi.py 中的说明进行操作.

  • 安装 Python 2.6.6

  • 将 Python 添加到系统 PATH(使生活更轻松)

  • 安装 pywin32 v214 (使用Python 安装程序,重要!)(注意这是针对 python 构建的2.6)

  • 安装 isapi_wsgi

  • download the mercurial source package
    提取,然后运行

    python setup.py --pure build_py -c -d . build_ext -i build_mo --forcepython setup.py --pure install --force
  • Copy hgwebdir_wsgi.py from /contrib/win32 to the folder you want to host it from.

  • Create a file hgweb.config in the folder you're going to host from. Add the contents

    [paths]yourRepoName = c:\yourRepoLocation
  • Edit hgwebdir_wsgi.py to point thehgweb.config. path_prefix is 0 if hgis the root of the website. ifyou're putting it in a vdir 1 deep,then it's 1, etc.

  • Run python hgwebdir_wsgi.py to createthe isapi dll _hgwebdir_wsgi.dll. Console should print out"installation complete"

  • Create your app pool in IIS (nomanaged code)

  • Create your website, with the folderset to the same folder ashgwebdir_wsgi.py

  • Add Handler of type Module, use "*"as the mapping, select_hgwebdir_wsgi.dll as the executable, select isapimodule as the type,Mercurial-ISAPI as the name (althoughname doesn't really matter)

  • Edit feature permissions of themodule to allow execute.

web.config (for the previous 2 steps):

<system.webServer>
<handlers accessPolicy="Read, Execute, Script">
<add name="Mercurial-Isapi" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\inetpub\hgweb\_hgwebdir_wsgi.dll" resourceType="Unspecified" />
</handlers>
</system.webServer>

完成这一切后,我能够让它正常工作。

最后一件事,我确实将 MFC71.dll 复制到 windows/system32,尽管我不确定是否有必要 http://python.net/crew/skippy/win32/

我认为我在这里得到的东西和上面链接上的东西之间的主要区别是我安装了“纯 python”mercurial,虽然我是一个完整的 python 新手所以我不确定。我还为 pywin 和 isapi_wsgi 而不是普通的 windows msis 做了“python 安装”。

关于python - IIS 7.5 上的 Mercurial 和 hgweb - python 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4355256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com