Mercurial CGI (hgweb.cgi) не работает - PullRequest
10 голосов
/ 16 марта 2011

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

Идеи

Ответы [ 2 ]

18 голосов
/ 14 апреля 2011

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

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

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

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

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

1 голос
/ 16 марта 2011

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

Попробуйте и посмотрите, какую DLL нужно искать.

...