Причудливая ошибка import мешает мне устанавливать меркурийное расширение.
Я пытаюсь запустить расширение mercurial_keyring, чтобы мне не приходилось вводить имя пользователя и пароль каждый раз, когда я использую mercurial для проекта.
Я использую Python 2.7.1. Я установил mercurial с двоичным кодом, представленным в https://www.mercurial-scm.org/.
Я установил keyring и mercurial_keyring с помощью pip.
Сначала я попытался добавить расширение, добавив его в ~/.hgrc:
[extensions]
...
mercurial_keyring =
как указано в инструкциях по установке здесь. Однако, я получил следующую ошибку:
*** failed to import extension mercurial_keyring: No module named mercurial_keyring
Из тех же инструкций по установке, я попытался указать mercurial непосредственно в файл mercurial_keyring.py, который сработал.
[extensions]
...
hgext.mercurial_keyring = /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mercurial_keyring.py
И все, казалось, двигалось.
Однако, когда я пытаюсь выполнить любые команды mercurial, требующие моего пароля, чтобы он был сохранен keyring (например, hg pull, hg push), я получаю сообщение об ошибке
abort: No module named keyring!
Самая запутанная часть состоит в том, что есть ясный
import keyring
в строке 28 из mercurial_keyring.py, которая разрешена без каких-либо проблем. Фактически, любой import keyring удаляет внешние классы и методы и терпит неудачу внутри них!
Как раз для тщательности, я упомянул, что эта ошибка возникает в mercurial_keyring.py в классе PasswordStore в методе get_http_password при попытке выполнить следующее:
return keyring.get_password(...)
Любые мысли?
У меня такое ощущение, что я пропустил что-то очевидное, но я потратил много времени, пытаясь понять это, и google пока не очень полезен. Любой вход будет оценен.