一个奇怪的import
错误阻止我安装一个 mercurial 扩展。
我试图让mercurial_keyring
扩展程序运行,这样每次我在项目中使用 mercurial 时都不必输入我的用户名和密码。
我正在使用 Python 2.7.1。我使用https://www.mercurial-scm.org/提供的二进制文件安装了 mercurial 。
我安装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
事情似乎在发展。
但是,当我尝试执行任何需要我的密码以便将其保存keyring
(例如 hg pull
,hg push
)的 mercurial 命令时,我收到错误
abort: No module named keyring!
最令人困惑的部分是有一个明确的
import keyring
在第 28 行mercurial_keyring.py
中解决了没有任何问题。事实上,任何import keyring
在类和方法之外成功而在它们内部失败!
只是为了彻底起见,我会提到这个错误出现在方法mercurial_keyring.py
中的PasswordStore
类中get_http_password
尝试以下操作时
return keyring.get_password(...)
有什么想法吗?
我感觉我遗漏了一些明显的东西,但我花了很多时间试图弄清楚这一点,而谷歌到目前为止并没有特别有用。任何输入将不胜感激。