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.