Мы тестируем вождение Mercurial на работе. Мы не хотим вводить нашего пользователя / проход каждый раз, когда мы взаимодействуем с репозиторием, поэтому мы настроили расширение mercurial_keyring. Мы:
- Установленный Python 2.6.5 (32 или 64 бита, в зависимости от системы)
- Установленные setuptools (для easy_install.exe)
- easy_install keyring
- easy_install mercurial_keyring
И затем внес соответствующие изменения в% userprofile% / mercurial.ini в разделе [auth]
. Он отлично работает на компьютере моего коллеги (32bit 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
Я попытался изменить свой mercurial.ini, указав путь к файлу mercurial_keyring.py, вместо того, чтобы mercurial нашел его (поскольку он находится в PYTHONPATH).
Старый:
[extensions]
mercurial_keyring =
Новое:
[extensions] mercurial_keyring =
c:/mercurial/extensions/mercurial_keyring.py
Ошибка меняется на:
abort: не удалось импортировать модуль
брелок!
Таким образом, хотя указание пути к расширению mercurial_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) для установки ключей и mercurial_keyring
- Создание набора ключей и mercurial_keyring из исходного кода (python setup.py bdist_wininst)
Ничего не работает. Самое близкое, что у меня есть, это использование hg.py при сборке из исходного кода. По крайней мере, это не дает мне ошибок, и на самом деле создает% userprofile% / wincrypto_pass.cfg, когда я ввожу свои учетные данные. Но при последующих запросах он не вводит учетные данные автоматически. Это снова побуждает меня к ним.
Интересно, что TortoiseHG - это с использованием связки ключей. Я просто не могу заставить его работать в командной строке. Я думаю, что что-то происходит с Win 7 x64, что мешает Mercurial (hg.exe) видеть PYTHONPATH, поэтому он не может найти ни один из установленных модулей.
У кого-нибудь есть расширения, работающие в Win 7 x64? Конкретно с бинарной установкой mercurial (не hg.py)?
UPDATE
Я нашел подходящую работу сейчас. Поскольку TortoiseHG работает с mercurial_keyring, я просто изменил настройки PATH, добавив в него папку tortoiseHG, но не c: \ mercurial. Теперь, когда я набираю «hg» в командной строке, он использует hg.exe в папке tortoiseHG, который работает нормально. Тем не менее, это все еще проблема с расширениями Mercurial на Win 7 x64. Ответы приветствуются.