Мы проводим испытания 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. Ответы приветствуются.