Mercurial CGI (hgweb.cgi) не работает

У меня Mercurial 1.8.1, Python 2.6.6 установлен на Win 2k8 R2, работающем на vm. Я попытался установить из msi, source и использовать 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 в установку или установить более старую версию. Я попробовал их все.

Это особенно неприятно, потому что у меня есть другие, похожие не-vm машины, работающие нормально, но не смогли найти отключение.

Идеи?

Ответ 1

У меня была такая же ошибка, используя следующую конфигурацию системы

  • Python-2.6.6 установлен как msi
  • mercurial-1.8.2-x86 установлен как msi
  • IIS7

Я решил эту проблему просто:

  • Python установлен раньше
  • Удалить пакет Mercuial msi
  • Загрузите и установите установщик "Mercurial-1.8.2 (32-bit py2.6)" из меркуриальный веб-сайт, который помечен как "Это рекомендуется для настроек hgweb".
  • скопированный контент C:\Python26\Lib\site-packages\mercurial\в каталог, используемый при настройке веб-сайта IIS7.

До сих пор все работает. Надеюсь, это поможет.

Ответ 2

Всякий раз, когда у меня есть меньше описательных сообщений об ошибках, которые говорят мне, что что-то происходит на системном уровне, но не что, я использую Procmon Sysinternals чтобы рассказать мне, что происходит с реестром и файловой системой. Это многословно, и получение фильтра для показа только процесса интереса требует некоторого обучения, но вы можете экспортировать результаты в Excel и снимать их для подозрительных результатов. Обратите особое внимание на неудачи, конечно.

Попробуйте и посмотрите, что ищет DLL.