Странная ошибка import
мешает мне установить расширение Mercurial.
Я пытаюсь запустить расширение mercurial_keyring
, чтобы мне не приходилось вводить свое имя пользователя ипароль каждый раз, когда я использую Mercurial для проекта.
Я использую Python 2.7.1.Я установил Mercurial с двоичным файлом, предоставленным по https://www.mercurial -scm.org / .
Я установил keyring
и mercurial_keyring
с pip
.
IСначала попытался добавить расширение, добавив его в ~/.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
И, кажется, что-то движется.
Однако, когда я пытаюсь выполнить любые ртутные команды, требующие мой пароль, чтобы он был сохранен с помощью keyring
(например, hg pull
, hg push
) Я получаю сообщение об ошибке
abort: No module named keyring!
Самая запутанная часть заключается в том, что в строке 28 из mercurial_keyring.py
есть четкие
import keyring
* это решается без проблем.Фактически, любой import keyring
преуспевает вне классов и методов и не работает внутри них!
Просто ради тщательности упомяну, что эта ошибка возникает в mercurial_keyring.py
в классе PasswordStore
вметод get_http_password
при попытке выполнить следующее
return keyring.get_password(...)
Есть мысли?
У меня такое ощущение, что я упускаю что-то очевидное, но я потратил много временипопытка выяснить это и Google не были особенно полезны до сих пор.Любой вклад будет принят с благодарностью.