Mercurial расширения не работают в Windows 7 x64?

Мы проводим испытания Mercurial на работе. Мы не хотим вводить наш пользователь/пароль каждый раз, когда мы взаимодействуем с репозиторием, поэтому мы устанавливаем расширение mercurial_keyring. Мы:

  • Установленный Python 2.6.5 (32 или 64 бит, в зависимости от системы)
  • Установленные setuptools (для easy_install.exe)
  • easy_install keyring
  • easy_install mercurial_keyring

И затем внес соответствующие изменения в% userprofile%/mercurial.ini в разделе [auth]. Он отлично работает на моем компьютере коллеги (32 бит xp sp3), но он не работает на моей машине (Windows 7 Ultimate x64). Также следует отметить, что setuptools необходимо было создать из источника на Win 7 x64 (python setup.py bdist_wininst, а затем запустить полученный setuptools-0.6c11.win-amd64.exe).

Используя только hg.exe из двоичной установки Mercurial 1.5 (.msi), я получаю эту ошибку при запуске hg.exe:

*** не удалось импортировать расширение mercurial_keyring: ни один модуль с именем mercurial_keyring

Я попытался изменить my mercurial.ini, чтобы указать путь к файлу mercurial_keyring.py вместо того, чтобы найти его (так как он находится в PYTHONPATH).

Старый:

[extensions]
mercurial_keyring =

Новое:

[extensions] mercurial_keyring =
c:/mercurial/extensions/mercurial_keyring.py

Ошибка изменяется на:

abort: не удалось импортировать модуль брелок!

Таким образом, при обеспечении пути к расширению расширения mercurial_keyring, зависимый модуль keyring все еще не может быть найден.

После дальнейшего исследования выяснилось, что НЕТ расширений работают. Все они вызывают ошибку:

*** не удалось импортировать расширение [имя добавочного номера]: ни один модуль с именем [имя модуля]

Похоже, что при запуске hg.exe он не знает о PYTHONPATH. Я пробовал:

  • Python 2.6.5 32 бит
  • Python 2.6.5 64 бит
  • Строительство Mercurial 1.5 из источника с MinGW
  • Строительство Mercurial 1.5 из источника с MSVC9
  • Использование hg.exe из двоичного файла 1.5 (.msi)
  • Использование hg.py в сценариях c:\python26\при создании из исходного кода
  • Различные конфигурации в% userprofile%/mercurial.ini
  • Использование setuptools (easy_install.exe) для установки keyring и mercurial_keyring
  • Создание keyring и mercurial_keyring из источника (python setup.py bdist_wininst)

Ничего не работает. Самый близкий я использую hg.py при построении из исходного кода. Это, по крайней мере, не дает мне ошибок и фактически создает% userprofile%/wincrypto_pass.cfg при вводе моих учетных данных. Но при последующих запросах он автоматически не вводит учетные данные. Это снова заставляет меня за них.

Интересно, что TortoiseHG использует брелок. Я просто не могу заставить его работать в командной строке. Я думаю, что что-то происходит с Win 7 x64, что мешает ртути (hg.exe) видеть PYTHONPATH, поэтому он не может найти ни один из установленных модулей.

У кого-нибудь есть расширения, работающие в Win 7 x64? В частности, с бинарной установкой ртутного (не hg.py)?

UPDATE На данный момент я нашел подходящую работу. Поскольку TortoiseHG работает с mercurial_keyring, я просто изменил настройку PATH, чтобы включить папку tortoiseHG, но не c:\mercurial. Теперь, когда я набираю "hg" в командной строке, он использует hg.exe в папке tortoiseHG, которая работает нормально. То же самое, это все еще проблема с mercurial расширениями на Win 7 x64. Ответы приветствуются.

Ответы

Ответ 1

Отвечая на мой вопрос с моим предыдущим обновлением, поскольку пока еще нет других участников.

Подходящее решение: поскольку TortoiseHG работает с mercurial_keyring, я просто изменил свой PATH, чтобы включить папку tortoiseHG, и исключить c:\mercurial. Теперь, когда я набираю "hg" в командной строке, он использует hg.exe в папке tortoiseHG, которая отлично работает с keyring.

Ответ 2

Я использую:

  • в Windows Server 2008 с пакетом обновления 2 (SP2) x86:
    • Python 2.6.5 x86
    • Mercurial 1.5.1 x86
    • TortoiseHg 1.0.1 x86
  • в Windows Server 2008 R2:
    • Python 2.6.5 x86
    • Mercurial 1.5.1 x86
    • TortoiseHg 1.0.1 x64

В обеих настройках все настроенные расширения загружаются без ошибок.

Все инструменты устанавливаются с помощью установщиков, размещенных на их сайтах. Mercurial появляется перед TortoiseHg в PATH. Я использую общий файл конфигурации ~/.hgrc для обоих инструментов и файл Mercurial.ini в установочной папке TortoiseHg, которая загружает только расширение mercurial_keyring.

В командной строке я должен вводить пароль каждый раз, когда это необходимо, но в TortoiseHg расширения брелока полностью работают.

На странице Расширение брелка на вики-странице Mercurial:

Если вы используете Windows, мы рекомендуем использовать TortoiseHg. THG поставляется с базовыми бэкэндами, специфичными для Windows, без которых расширение меркурийной клавиатуры не может нормально функционировать в Windows.

ОБНОВЛЕНИЕ http://asimilatorul.com/adapter/post/using-mercurial_keyring-extension-with-mercurial-on-windows/

Вы можете скопировать необходимые файлы из TortoiseHg library.zip в Mercurial library.zip:

  • hgext\mercurial_keyring.pyo
  • keyring__init __. Гнойно
  • брелока \backend.pyo
  • брелока \core.pyo
  • win32_crypto.pyd

Ответ 3

Страница расширения утверждает, что TortoiseHG имеет некоторые дополнительные компоненты, чтобы заставить ее работать в Windows и что она не работает должным образом без них. Похоже, что обходной путь ссылки на версию TortoiseHG может быть самым простым способом заставить ее работать в Windows.